SQL 左連線,右連線

2021-06-22 04:28:59 字數 1641 閱讀 7774

現在在這寫寫關於它們的作用

假設有如下表:

乙個為投票主表,乙個為投票者資訊表~記錄投票人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,右連線,左連線

1.內連線 利用內連線可獲取兩表的公共部分的記錄,即圖3的記錄集c 語句如下 select from a join b on a.aid b.bnameid。結果如圖中c部分。2.外連線 外連線分為兩種,一種是左連線 left join 和右連線 right join 1 左連線 left join...

sql 左連線 右連線 全連線

編號 姓名 1000 張三 2000 李四 3000 王五 test ora1 sql select from b 編號 商品 1000 電視機 2000 錄影機 4000 自行車 test ora1 sql set null 空值 這裡為了顯示方面我把null定義成了 空值 test ora1 s...

SQL連線方式(左連線 右連線 全連線)

1.內連線 左連線 右連線 全連線介紹 內連線僅選出兩張表中互相匹配的記錄 因此,這會導致有時我們需要的記錄沒有包含進來。內部連線是兩個表中都必須有連線欄位的對應值的記錄,資料才能檢索出來。左連線和右連線都是外部連線,也就是區別於內部連線,它對不滿足連線條件的行並不是象內部連線一樣將資料完全過濾掉,...