SQL中的連線區別

2021-08-08 03:37:17 字數 1027 閱讀 6638

使用join連表,缺陷的情況下是inner join,開發中使用的left join和right join屬於outer join,outer join還包括full join

現有兩張表,table a 是左邊的表。table b 是右邊的表。其各有四條記錄,其中有兩條記錄name是相同的:

1.inner join 產生的結果是ab的交集

select * from tablea inner join tableb on tablea.name = tableb.name

2.left [outer] join 產生表a的完全集,而b表中匹配的則有值,沒有匹配的則以null值取代。

select * from tablea left outer join tableb on tablea.name = tableb.name

3.right [outer] join 產生表b的完全集,而a表中匹配的則有值,沒有匹配的則以null值取代。

select * from tablea right outer join tableb on tablea.name = tableb.name

圖示如left join類似。

4.full [outer] join 產生a和b的並集。對於沒有匹配的記錄,則會以null做為值。

select * from tablea full outer join tableb on tablea.name = tableb.name

可以通過is null將沒有匹配的值找出來:

select * from tablea full outer join tableb on tablea.name = tableb.name

where tablea.id is null or tableb.id is null

5. cross join 把錶a和表b的資料進行乙個n*m的組合,即笛卡爾積。如本例會產生4*4=16條記錄,在開發過程中我們肯定是要過濾資料,所以這種很少用。

select * from tablea cross join tableb

Http tcp Socket連線區別

http tcp socket連線區別 相信不少初學手機聯網開發的朋友都想知道http與socket連線究竟有什麼區別,希望通過自己的淺顯理解能對初學者有所幫助。1 tcp連線 要想明白socket連線,先要明白tcp連線。手機能夠使用聯網功能是因為手機底層實現了tcp ip協議,可以使手機終端通過...

MySql左右連線區別

左連線where隻影向右表,右連線where只影響左表。left join select from tbl1 left join tbl2 where tbl1.id tbl2.id 左連線後的檢索結果是顯示tbl1的所有資料和tbl2中滿足where 條件的資料。簡言之 left join影響到的...

oracle中的內連線和外連線區別

表t user1,t user2,t user3,各有id,name兩列 idname 110a 220a id name 110b 330b id name 110c 440c 連線分為兩種 內連線與外連線。內連線,即最常見的等值連線,例 select from t user1,t user2 w...