首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql2000 多表查询,该如何处理

2012-03-26 
sql2000 多表查询刚学到sql的select语 sql提供了多表查询的功能 是用join。。。on。。。实现的但我自己试了一下

sql2000 多表查询
刚学到sql的select语 sql提供了多表查询的功能 是用join。。。on。。。实现的 
但我自己试了一下 不用join。。。on。。。 也可以在多个表中查询出想要的结果啊 
我想知道用普通的 select。。from。。。where。。。和select。。。from。。join。。on。。。这样 有什么不同

[解决办法]
/*
包括部门,姓名,出勤天数,迟到次数,早退次数,矿工次数 这些数据
*/

go
if OBJECT_ID('dept') is not null
drop table dept
go
create table dept(
deptid varchar(5),
deptname varchar(20)
)

go
if OBJECT_ID('emp') is not null
drop table emp
go
create table emp(
empid varchar(10),
empname varchar(20),
empsex varchar(5) check(empsex in('men','women')),
empage int,
birthday datetime,
addr varchar(50),
tel varchar(12),
deptid varchar(5)
)

go
if OBJECT_ID('kaoqin') is not null
drop table kaoqin
go
create table kaoqin(
empid varchar(10),
deptid varchar(5),
出勤天数 int,
迟到次数 int,
早退次数 int,
矿工次数 int
)
--包括部门,姓名,出勤天数,迟到次数,早退次数,矿工次数
select 
dept.deptname as 部门,emp.empname as 姓名,
出勤天数,迟到次数,早退次数,矿工次数
from emp
inner join dept on emp.deptid=dept.deptid
inner join kaoqin on emp.empid=kaoqin.empid

/*
包括部门 姓名 出勤天数 迟到次数 早退次数 矿工次数
*/

[解决办法]

SQL code
declare @t table (id int,col varchar(1))insert into @tselect 1,'a' union allselect 2,'b' UNION ALLSELECT 3,'c'declare @m table (id int,col varchar(1))insert into @mselect 1,'a' union allselect 2,'b'select * from @t a left join @m b on a.id=b.id/*id          col  id          col----------- ---- ----------- ----1           a    1           a2           b    2           b3           c    NULL        NULL*/select * from @t a left join @m b on 1=1  WHERE a.id=b.id/*id          col  id          col----------- ---- ----------- ----1           a    1           a2           b    2           b*/--相当于内连接select * from @t a ,@m b WHERE a.id=b.id/*----------- ---- ----------- ----1           a    1           a2           b    2           b*/ 

热点排行