SQL中join的各種用法
阿新 • • 發佈:2019-11-19
SQL join 用於把來自兩個或多個表的行結合起來。
下圖展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相關的 7 種用法。
1.自然連線(natural join)
自然連線將表中具有相同名稱的列自動進行匹配,自然連線不必指定任何同等連線條件也不能認為指定哪些列需要被匹配,自然連線得到的結果表中,兩表中名稱相同的列只出現一次。
select * from employee natural join department;
2.內連線(inner join):產生的結果是A和B的交集(相同列裡面的相同值)
內連線查詢能將左表和右表中能關聯起來的資料連線後返回,返回的結果就是兩個表中所有相匹配的資料。
select * from TableA as A inner join TableB B on A.PK > B.PK;
![](https://images2017.cnblogs.com/blog/762556/201711/762556-20171122174818461-1323887394.png)
3.外連線(outer join)
內連線是要顯示兩張表的記憶體,而外連線不要求如此,外連線可以依據連線表保留左表,右表或全部表的行為而分為左外連線右外連線和全連線。
select * from TableA as A left(right/full) join TableB as B on A.PA = B.PK;
Full Join:產生的結果是A和B的並集(如果沒有相同的值會用null作為值)
Left Join:產生表A的完全集,而B表中匹配的則有值(沒有匹配的則以null值取代)
Right Join:產生表B的完全集,而A表中匹配的則有值(沒有匹配的則以null值取代)
4.交叉連線(cross join)
又稱笛卡爾連線,交叉連線返回兩個集合的笛卡爾積。
select * from TableA cross join TableB;
參考連結:http://mazhuang.org/2017/09/11/joins-in-sql/#inner-join