表A:SELECT * FROM dbo.[111]
ID |
AA |
BB |
1 |
a1 |
b1 |
2 |
a2 |
b2 |
3 |
a3 |
b3 |
表B:SELECT *FROM dbo.[222]
id |
cc |
dd |
1 |
c1 |
d1 |
2 |
c2 |
d2 |
4 |
c3 |
d3 |
第一种:内连接-inner join A表和B表的交集
SELECT * FROM dbo.[111] a INNER JOIN dbo.[222] b ON b.id = a.ID
ID |
AA |
BB |
id |
cc |
dd |
1 |
a1 |
b1 |
1 |
c1 |
d1 |
2 |
a2 |
b2 |
2 |
c2 |
d2 |
第二种:全连接-Full outer join A表和B表的并集
SELECT * FROM dbo.[111] a Full outer join dbo.[222] b ON b.id = a.ID
ID |
AA |
BB |
id |
cc |
dd |
1 |
a1 |
b1 |
1 |
c1 |
d1 |
2 |
a2 |
b2 |
2 |
c2 |
d2 |
3 |
a3 |
b3 |
NULL |
NULL |
NULL |
NULL |
NULL |
NULL |
4 |
c3 |
d3 |
第三种:左外连接-LEFT outer join A表全集,left join是left outer join 的缩写,右外连接同理
SELECT * FROM dbo.[111] a LEFT outer join dbo.[222] b ON b.id = a.ID
ID |
AA |
BB |
id |
cc |
dd |
1 |
a1 |
b1 |
1 |
c1 |
d1 |
2 |
a2 |
b2 |
2 |
c2 |
d2 |
3 |
a3 |
b3 |
NULL |
NULL |
NULL |
第四种:交差集 cross join ,笛卡尔积的结果,性能不够好
SELECT * FROM dbo.[111] a CROSS join dbo.[222] b
ID |
AA |
BB |
id |
cc |
dd |
1 |
a1 |
b1 |
1 |
c1 |
d1 |
2 |
a2 |
b2 |
1 |
c1 |
d1 |
3 |
a3 |
b3 |
1 |
c1 |
d1 |
1 |
a1 |
b1 |
2 |
c2 |
d2 |
2 |
a2 |
b2 |
2 |
c2 |
d2 |
3 |
a3 |
b3 |
2 |
c2 |
d2 |
1 |
a1 |
b1 |
4 |
c3 |
d3 |
2 |
a2 |
b2 |
4 |
c3 |
d3 |
3 |
a3 |
b3 |
4 |
c3 |
d3 |
第五种:等值连接的写法,结果跟内连接一样
SELECT * FROM dbo.[111] a ,dbo.[222] b where b.id = a.ID
第六种:自然连接是特殊的等值连接,去重重复的项,结果为下:
ID |
AA |
BB |
cc |
dd |
1 |
a1 |
b1 |
c1 |
d1 |
2 |
a2 |
b2 |
c2 |
d2 |