SQL的左右連線一般在什麼情況下用

2021-08-14 09:13:34 字數 2138 閱讀 1006

1樓:兩顆芝麻一張餅

什麼情況下要用到左右連線,最常用的兩表連線是內鏈結,查詢到的結果是兩表匹配的資料.

在企業中比如是京東,有這麼個情況,他的商品表是一張表,他的銷售數量是一張表.如果要看到商品的銷量,兩表內鏈結就可以了.但是很有可能有些商品沒有銷量,那麼這個數量就會為空,那麼通過內鏈結就檢視不到了.

沒有銷售的商品對公司反而更重要,我們要分析為什麼銷售不出去,要找原因,解決內連線匹配不到的問題,就要用到我們後面說的左右連線.

左右連線的使用其實非常簡單,下面三句總結:

1、哪個表要全部展示,就看"沒有"「全部」這樣的字修飾哪個表.

2、如果想用左連線讓該錶全部展示,那麼就將他放在join的左邊,如果想用右連線讓該錶全部展示,那麼就將他放在join的右邊.

3、如果表在join的左邊,我想然他全部展示,就用左連線,如果表在join的右邊,我想讓他全部展示,就用右連線

軟體測試:兩天搞定mysql

2樓:匿名使用者

舉個例子:

現在需要統計超市每個商品買了多少。

商品表(商品編號,商品名稱)

銷售表(商品編號,銷售數量,月份)

如果直接下面的語句查詢,就會遺漏沒有銷售過的商品。

select 商品名稱,sum(銷售數量)from 商品表,銷售表

where 商品表.商品編號=銷售表.商品編號這時就需要使用左外連線或者右外連線

select 商品名稱,isnull(sum(銷售數量),0) as 銷售數量

from 商品表 left join 銷售表on 商品表.商品編號=銷售表.商品編號

--sql server**

--沒有銷售過的商品,使用sum(銷售數量)會顯示為null,用isnull將null值轉換成0

sql中什麼時候用內連線查詢,什麼時候用外連線查詢?用起來好像一樣啊!

3樓:sql的藝術

需要查詢兩張表同時存在的資料,使用內連線

需要查詢兩張表中一張表存在,另一張表不存在的時候使用左外鏈結 或 右外鏈結

內連線的查詢結果都是滿足連線條件的元組。但有時我們也希望輸出那些不滿足連線條件的元組資訊。比如,我們想知道每個學生的選課情況,包括已經選課的學生(這部分學生的學號在學生表中有,在選課表中也有,是滿足連線條件的),也包括沒有選課的學生(這部分學生的學號在學生表中有,但在選課表中沒有,不滿足連線條件),這時就需要使用外連線。

外連線是只限制一張表中的資料必須滿足連線條件,而另一張表中的資料可以不滿足連線條件的連線方式。3種外連線:

1)左外連線(leftouter join)

如果在連線查詢中,連線管子左端的表中所有的元組都列出來,並且能在右端的表中找到匹配的元組,那麼連線成功。如果在右端的表中,沒能找到匹配的元組,那麼對應的元組是空值(null)。這時,查詢語句使用關鍵字left outerjoin,也就是說,左外連線的含義是限制連線關鍵字右端的表中的資料必須滿足連線條件,而不關左端的表中的資料是否滿足連線條件,均輸出左端表中的內容。

例如:要查詢所有學生的選課情況,包括已經選課的和還沒有選課的學生,查詢語句為

select學生表.學號,姓名,班級,課程號,成績

from學生表left outer join選課表on學生表.學號=選課表.學號

左外連線查詢中左端表中的所有元組的資訊都得到了保留。

2)右外連線(rightouterjoin)

右外連線與左外連線類似,只是右端表中的所有元組都列出,限制左端表的資料必須滿足連線條件,而不管右端表中的資料是否滿足連線條件,均輸出表中的內容。

例如:同上例內容,查詢語句為

select學生表.學號,姓名,班級,課程號,成績

from學生表rightouterjoin選課表on學生表.學號=選課表.學號

右外連線查詢中右端表中的所有元組的資訊都得到了保留。

3)全外連線(full outer join)

全外連線查詢的特點是左、右兩端表中的元組都輸出,如果沒能找到匹配的元組,就使用null來代替。

例如:同左外連線例子內容,查詢語句為

select學生表.學號,姓名,班級,課程號,成績

from學生表full outer join選課表on學生表.學號=選課表.學號

全外連線查詢中所有表中的元組資訊都得到了保留。

狗在什麼情況下會咬人狗狗一般在什麼情況下才會咬人

狗在吃東西的時bai候千萬不要 管du它,不要讓它有你zhi要去搶它食物dao的版想法,不然肯定權會被咬的。狗是很顧窩的,它經常睡覺的地方也不能去碰,不然會被它攻擊。當狗的情緒失控的時候,如恐懼等也會讓它充滿攻擊性,這時候千萬不要刺激到它。總之,不要動狗的窩 食物,在它情緒失控的時候也要小心,不要做...

在什麼情況下會被拘留,一般拘留幾天

根據我國 治安管理處罰法 的規定,行政拘留是一種重要的也是常見的行政處罰的種類。期限一般為10日以內,較重的不超過15日。有兩種以上違反治安管理行為需要行政拘留的,最長不超過二十日。拘留,根據涉案性質的不同,可以分為行政拘留 刑事拘留 司法拘留。三者有著本質的不同,在適用上也有不同的要求。一 行政拘...

一般在什麼情況下需要佩戴助聽器呢

如若出現聽力損失大於25分貝的情況下,根據個人對不同環境,場景的需要就可以考慮選配助聽產品。國際衛生組織 who 1997 將聽力損失分級如下 平均聽力損失小於等於25分貝為正常 平均聽力損失介於26 40分貝為輕度聽力損失 平均聽力損失介於41 60分貝為中度聽力損失 平均聽力損失介於61 80分...