SQL中join的用法

2021-08-21 19:13:46 字數 1473 閱讀 7790

第一種:inner join

解釋:產生的結果是a和b的交集(相同列裡面的相同值)。內連線是最常見的一種連線,它也被稱為普通連線,只連線匹配的行(僅對滿足連線條件的cross中的列)。它又分為等值連線(連線條件運算子為"=")和不等值連線(連線條件運算子不為"=",例如between...and)。

第二種:full outer join

解釋:產生的結果是a和b的並集(如果沒有相同的值會用null作為值)。full join 會從左表和右表那裡返回所有的行。如果其中乙個表的資料行在另乙個表中沒有匹配的行,那麼對面的資料用null代替

第三種:left outer join

解釋:產生表b的完全集,而a表中匹配的則有值(沒有匹配的則以null值取代)。left join返回左表的全部行和右表滿足on條件的行,如果左表的行在右表中沒有匹配,那麼這一行右表中對應資料用null代替。

第四種:right outer join

解釋:參考第三種left outer join

第5種:cross join

解釋:cross對兩個表執行笛卡爾乘積。它為左表行和右錶行的每種可能的組合返回一行。返回(左表行數*右錶行數)行的表。ps:很少用到這個語法。注意如果不是使用巢狀的select語句,一般系統都會產生笛卡爾乘積然再做過濾。這是對於效能來說是非常危險的,尤其是表很大的時候。

特殊:natural join(oracle的用法,sqlserver裡面不支援這種寫法。ps:大神可以糾正用法這裡)

解釋:自然連線是一種特殊的等值連線,在連線條件中使用等於(=)運算子比較被連線列的列值,但它使用選擇列表指出查詢結果集合中所包括的列,並刪除連線表中的重複列。

sql中join的用法

select from table1 between 用法 select from table1 where kssj between 2019 05 01 and 2019 05 01 select from table1 where kssj 2019 05 01 and kssj 2019 0...

SQL中JOIN的用法

內連線是最常見的一種連線,只連線匹配的行。inner join語法 大家共有的東西 left join返回左表的全部行和右表滿足on條件的行,如果左表的行在右表中沒有匹配,那麼這一行右表中對應資料用null代替。left join 語法 左表東西都保留,右表保留左表有的部分 right join返回...

SQL 的各種 join 用法

下圖展示了 left join right join inner join outer join 相關的 7 種用法。具體分解如下 1 inner join 內連線 2 left join 左連線 select from table a a left join table b b on a.key ...