SQL 連線 JOIN 例解

2022-04-30 15:00:10 字數 1450 閱讀 5531

假設有如下表:

乙個為投票主表,乙個為投票者資訊表~記錄投票人ip及對應投票型別,左右連線實際說是我們聯合查詢的結果以哪個表為準~

1:如右接連 right join 或 right outer join:

我們以右邊voter表為準,則左表(votemaster)中的記錄只有當其id在右邊(voter)中存在時才會顯示出來,如上圖,左邊中id為3.4.5.6因為這些id右表中沒有相應記錄,所以沒有顯示!

2:因此我們自然能理解左連線 left join 或者 left outer join

可見,現在右邊中id在中存在時才會顯示,當右邊中沒有相應資料時則用null代替!

3:全連線 full join 或者 full outer join,為二個表中的資料都出來,這裡演示效果與上一樣!

4:內連線 inner join 或者 join;它為返回欄位id同時存在於表votemaster 和 voter中的記錄

5:交叉連線(完全連線)cross join 不帶 where 條件的

沒有 where 子句的交叉聯接將產生聯接所涉及的表的笛卡爾積。第乙個表的行數乘以第二個表的行數等於笛卡爾積結果集的大小。(table1和table2交叉連線產生6*3=18條記錄)

等價select vm.id,vm.votetitle,vt.ip from votemaster as vm,voter as vt

6:自連線。在這裡我用我前段時間乙個電力專案中的例子(改造過)

如下表:

這是乙個部門表,裡面存放了部門及其上級部門,但都放在同一張表中,我們假設現在需要用sql查詢出各部門及其上級部門!就如何做,

當然,不用自連線也一樣,可以如下:

我們達到預期目的!在這個查詢中使用了乙個子查詢完成對上級部門名的查詢,如果使用自連線,那麼結構上感覺會清晰很多。

是不是也同樣完成了功能呢,這裡除了使用自連線外,還使用了左連線,因為省電力沒有上級部門,他是老大,如果使用內連線,就會把這條記錄過濾掉,因為沒有和他匹配的上級部門。

自連線用的比較多的就是對權形結構的查詢!類似上表!

SQL 連線 JOIN 例解

假設有如下表 乙個為投票主表,乙個為投票者資訊表 記錄投票人ip及對應投票型別,左右連線實際說是我們聯合查詢的結果以哪個表為準 1 如右接連 right join 或 right outer join 我們以右邊voter表為準,則左表 votemaster 中的記錄只有當其id在右邊 voter ...

SQL連線查詢 JOIN

主要列舉這個圖 或者,或者,同理,select column name s from table1 left join table2 on table1.column name table2.column name 或者,select column name s from table1 left o...

SQL高階 三 SQL 連線 JOIN

開始線 sql join 用於把來自兩個或多個表的行結合起來。下圖展示了 left join right join inner join outer join 相關的 7 種用法。sql join 子句用於把來自兩個或多個表的行結合起來,基於這些表之間的共同字段。最常見的 join 型別 sql i...