一 內連接( inner join)
1、多表中同時符合某種條件的數據記錄的集合 (取兩表公共部分)
2、inner join 可以縮寫成 join
例如: ? select * from A,B WHERE A.id=B.id 或者 ?select * from A inner join B on A.id=B.id
內連接分為三類:{
(1)等值連接: on A.id=B.id
(2) 不等值連接: on A.id>B.id
(3) 自連接: select * from A T1 inner join A T2 on T1.id = T2.pid
}
?
?
二 ?外連接(left join、right join)
1、左外連接: ?left ?join ?,以左表為主,先查詢出左表,然后按照on 后面的關聯條件匹配右表,沒有匹配到的用null 填充
2、右外連接: ?同理
?
三 ?聯合查詢(union、union all)
就是把多個結果集集中在一起,union前的結果為基準,需要注意的是聯合查詢的列數要相等,相同的記錄行會合并
注:如果使用union all , 則不會合并重復的記錄行,效率方面,union也要高于union all
例如 : ? select * from A union select * from B union...
?
四 ?嵌套查詢(子查詢)
select ?* ?from ?A ?where ?id ?in ?(select id from B)
?
?
五 ?交叉連接(cross join)【笛卡爾積】
select * from A,B(,C)或者select * from A cross join B(cross join c)
注:交叉連接查詢沒有任何關聯條件,結果是笛卡爾積,結果集很大,沒有意義,所以很少使用
?
?
?
?