Mysql的关联查询语句
一 內(nèi)連接( inner join)
1、多表中同時(shí)符合某種條件的數(shù)據(jù)記錄的集合 (取兩表公共部分)
2、inner join 可以縮寫成 join
例如: ? select * from A,B WHERE A.id=B.id 或者 ?select * from A inner join B on A.id=B.id
內(nèi)連接分為三類:{
(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 后面的關(guān)聯(lián)條件匹配右表,沒有匹配到的用null 填充
2、右外連接: ?同理
?
三 ?聯(lián)合查詢(union、union all)
就是把多個(gè)結(jié)果集集中在一起,union前的結(jié)果為基準(zhǔn),需要注意的是聯(lián)合查詢的列數(shù)要相等,相同的記錄行會(huì)合并
注:如果使用union all , 則不會(huì)合并重復(fù)的記錄行,效率方面,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)
注:交叉連接查詢沒有任何關(guān)聯(lián)條件,結(jié)果是笛卡爾積,結(jié)果集很大,沒有意義,所以很少使用
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Mysql的关联查询语句的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql-索引的基础和类型
- 下一篇: SQL查询的安全方案