1.交叉連接
返回兩個表的笛卡爾積:select * from A,B
比如A的id有{1,2,3},B的aid有{2,3,4},得到的數據:
id .....aid.....
1 2
1 3
1 4
2 2
.... ....
3 3
3 4
2.內連接--inner join(inner可以省略)
返回兩個表的交集:
2.1隱式內連接(看不到join的內連接)
就是加了條件的交叉連接:select * from A,B where A.id = B.aid
比如A的id有{1,2,3},B的aid有{2,3,4},得到的數據:
id........A表數據(不含id)........aid........B表數據(不含aid)
2 不為空 2 不為空
3 不為空 3 不為空
2.2顯式內連接
(1).select *from A inner join B on A.id = B.aid-----------得到的數據和隱式內連接一樣
(2).select *from A inner join B using (id)----------當B表中的外鍵名等於A表的主鍵名時使用,查詢結果只有一個id字段的值
比如A的id有{1,2,3},B的id有{2,3,4},得到的數據:
id........A表數據(不含id)........B表數據(不含aid)
2 不為空 不為空
3 不為空 不為空
3.外連接
返回兩個表的並集
3.1左外連接left outer join(outer 省略)
select *from A left outer join B on A.id = B.aid
返回A和B的並集,比如A的id有{1,2,3},B的oid有{2,3,4},返回的是{1,2,3},id為1的記錄中B表信息為空
id........A表數據(不含id)........aid........B表數據(不含aid)
1 不為空 空 空
2 不為空 2 不為空
3 不為空 3 不為空
3.2右外連接right outer join(outer 省略)
select *from A right outer join B on A.id = B.aid
返回A和B的並集,比如A的id有{1,2,3},B的oid有{2,3,4},返回的是{2,3,4},id為4的記錄中A表信息為空
id........A表數據(不含id)........aid........B表數據(不含aid)
2 不為空 2 不為空
3 不為空 3 不為空
空 空 4 不為空