SQL中多表查询:左连接、右连接、内连接、全连接、交叉连接
生活随笔
收集整理的這篇文章主要介紹了
SQL中多表查询:左连接、右连接、内连接、全连接、交叉连接
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、左連接,右連接,內連接關系
左連接:左表全部+兩個表交集(①+②)
右連接:右表全部+兩個表交集(③+②)
內連接:兩個表交集(②)
二、結合具體例子看(已經在mysql中執行過的例子,可以運行,沒有錯誤)
表1
表2
1、左連接(left join)
? ? ?返回左表所有行,右表與之匹配記錄,若沒有,返回null
select a.id,a.name,b.address from empi_patient a LEFT JOIN empi_patient_copy2 b on a.id = b.id執行結果:
2、右連接(right join)
? ? ??返回右表所有行,左表與之匹配記錄,若沒有,返回null
SELECT b.id,a.name,b.address from empi_patient a RIGHT JOIN empi_patient_copy2 b on a.id = b.id3、內連接(inner join ,其中inner可省略)
? ? ?返回兩表的交集記錄,返回2個表中完全符合條件的記錄,結果集中表的字段內容均來自各自的表。
SELECT b.id,a.name,b.address from empi_patient a INNER JOIN empi_patient_copy2 b on a.id = b.id --inner join SELECT b.id,a.name,b.address from empi_patient a JOIN empi_patient_copy2 b on a.id = b.id --join4、全連接(full join)
? ? ?Mysql不支持全連接
5、交叉連接(cross join)
? ? ?沒有條件限制的交叉連接,將產生連接所涉及的表的笛卡爾積
SELECT b.id,a.name,b.address from empi_patient a CROSS JOIN empi_patient_copy2 b?加上條件,和內連接一樣了
SELECT b.id,a.name,b.address from empi_patient a CROSS JOIN empi_patient_copy2 b on a.id = b.id?
總結
以上是生活随笔為你收集整理的SQL中多表查询:左连接、右连接、内连接、全连接、交叉连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 绝对定位relative、相对定位abs
- 下一篇: 蓝桥杯第七届决赛JAVA真题----广场