內連線真的坑,sql引入外連線是有原因的

2021-10-24 10:32:54 字數 400 閱讀 8537

做專案需要通過白班、夜班兩張檢視寫出一張日合計檢視。一開始用的是:

select 白班.欄位 + 夜班.欄位 as 「日合計_欄位」 from 白班,夜班 where 白班.日期 = 夜班.日期;

這樣搞就很難受。當有一天有乙個欄位有白班沒夜班或者有夜班沒白班,這個欄位就不會出現在日合計裡面。

這時候我明白了sql引入外連線這個東西的原因,太合理了。我需要連線白班夜班兩個表,哪個班的資料為空就置為0。所以:

select nvl(白班.欄位,0)

+nvl(夜班.欄位,0)

as"日合計_欄位"

from 白班 full

join 夜班

on 白班.日期 = 夜班.日期

解決問題

SQL 內連線,外連線

假設一堆男女在教堂,有夫婦有單身的,假設男為左表,女為右表 教父說 結了婚的人請出去,結了婚的人請手拉手,於是結了婚的男女站了起來,這就是inner 內連 教父說 男的並且和這些男的結婚的女的請出去,結了婚的人請手拉手,於是,結了婚的夫婦手拉手出去,單身的男的也出去了。這就是 left 左連 教父說...

SQL 內連線 外連線

通過where 或者 inner join保留表中的一部分,最直觀就是說 表在選擇投影後,得到的各個元組內的元素都不會是空的。inner join 表中至少乙個匹配時,返回行。左連線 即使右表中沒有匹配,也從左表中返回所有行。因次,元組中的元素若有來自右表,則該元素為空。右連線 即使左表中沒有匹配,...

SQL 內連線,外連線(左外連線 右外連線)

參考整理筆記 關鍵字 inner join on 語句 select from a table a inner join b table bon a.a id b.b id 執行結果 說明 組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集 陰影 部分。關鍵字 left join o...