以下是我對sql的內連線、左外連線、右外連線以及交叉連線的一些理解,希望能幫助到一些人,也歡迎指正錯誤。
假設有兩張表
a表和b表
a表中的aid與b表中的bid關聯
內連線:select * from a join b on a.aid=b.bid 或者(select * from a,b where a.aid=b.bid)
1.取一條a表的資料去跟b表中的資料匹配
2.匹配到了則顯示接著取a表的下一條資料繼續匹配,匹配不到也接著取下一條資料但是不顯示
3.重複第2步直至取完a表中的資料
備註:有匹配時返回對應的行
外連線包括左連線和右連線。
左連線:select * from a left join b on a.aid=b.bid
1.取一條a表的資料去跟b表中的資料匹配
2.不管有沒有匹配到都要顯示該條資料,只是沒匹配到的b表字段顯示為空
3.重複第2步直至取完a表中的資料
備註:返回a表中所有的行
右連線:select * from a right join b on a.aid=b.bid
1.取一條b表的資料去跟a表中的資料匹配
2.不管有沒有匹配到都要顯示該條資料,只是沒匹配到的a表字段顯示為空
3.重複第2步直至取完a表中的資料
備註:返回b表中所有的行
交叉連線(笛卡兒積):select * from a full join b on a.aid=b.bid
備註:返回a表和b表中所有的行
SQL 內連線,外連線(左外連線 右外連線)
參考整理筆記 關鍵字 inner join on 語句 select from a table a inner join b table bon a.a id b.b id 執行結果 說明 組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集 陰影 部分。關鍵字 left join o...
SQL 左外連線,右外連線,全連線,內連線
例子1 a表 id name b表 id job parent id 1 張3 1 23 1 2 李四 2 34 2 3 王武 3 34 4 a.id同parent id 存在 關係內連線 select a.b.from a inner join b on a.id b.parent id 結果是 ...
SQL之全外連線,左外連線,右外連線,內連線
1.內連線 內聯接使用比較運算子 使用像 或 之類的比較運算子 根據每個表共有的列的值匹配兩個表中的行,根據這兩張表中相同列的條件,得出其交集。沒有inner join,形成的中間表為兩個表的笛卡爾積 select from customers c,orders o where c.id o.cus...