Left Join左连接也就是说列出左边表所有列,右边表有符合条件的就显示,没有就现实NULL
、Right Join与上相反
、inner Join它返回两个表中的所有列,但只返回在联接列中具有相等值的行
、cross Join它在WHERE 加上条件和INNER JOIN 一样如:
SELECT * FROM A INNER JOIN B WHERE A.ID=B.ID
ID A ID B
1 A 1 C
2 B 2 D
自己在查询分析器里运行就知道啦
create table #A(id int, e varchar(30))
insert into #a
Select 1,'a'
union select 2,'b'
union select 3,'c'
create table #B(id int ,f varchar(30))
insert into #b
Select 1,'b'
union select 2,'c'
union select 5,'c'
select #a.* from #a inner join #b on #a.id =#b.id
select #a.*,#b.* from #a left join #b on #a.id =#b.id
select #a.*,#b.* from #a right join #b on #a.id =#b.id
select #a.* from #a cross join #b
自己在查询分析器里运行就知道啦
create table #A(id int, e varchar(30))
insert into #a
Select 1,'a'
union select 2,'b'
union select 3,'c'
create table #B(id int ,f varchar(30))
insert into #b
Select 1,'b'
union select 2,'c'
union select 5,'c'
select #a.* from #a inner join #b on #a.id =#b.id
如有表A
ID,A
1 A
2 B
3 C
表B
ID, B
1 C
2 D
SELECT * FROM A LEFT JOIN B ON A.ID=B.ID
结果
ID A ID B
1 A 1 C
2 B 2 D
3 C NULL NULL
SELECT * FROM A Right JOIN B ON A.ID=B.ID
结果
ID A ID B
1 A 1 C
2 B 2 D