關於表聯接

2021-04-01 16:21:24 字數 996 閱讀 9913

內連線:

對於內連線(或簡單表連線),只在結果中包含根據連線謂詞所匹配的行。因此,沒有包含那些不匹配的行

外 連線的 from 子句中的表可以被分類成保留行(preserved row)表或者替換null(null-supplying)的表。保留行表是指那些在連線操作中沒有匹配的內容時,把行保留下來的表。因此,將返回保留 行表中所有滿足where 子句要求的行,無論在連線中是否存在匹配的行

保留行表是:

左外連線中左邊的表

右外連線中右邊的表

全外連線中全部的表

當不存在匹配的行時,替換 null 的表替換 null。如果連線操作中不存在匹配,任何在 select 列表或者隨後的 where 或者 on 子句中引用的替換 null 的表中的列都將包含 null。

替換 null 的表是:

左外連線中右邊的表

右外連線中左邊的表

全外連線中全部的表

在全外連線中,兩張表既可以保留行,也可以替換 null。這一點非常重要,因為有些規則適用於純粹的保留行表,但是如果該錶也替換 null,則會變得不適用

在 from 子句中編寫表的順序對於左外連線、右外連線以及涉及兩張表以上的連線極端重要,因為當連線中存在不匹配的行時,保留行表和替換 null 的表的表現不同

左外連線

左外連線返回那些存在於左表而右表中卻沒有的行,加上內連線的行。那些來自保留行表的未匹配行會被保留,而那些來自替換 null 的表中的行會以 null 替換。也就是說,當行與右邊的表不匹配時.將從 右表以 null 替換作為 列 的值

右外連線

右外連線返回那些存在於右表而左表中沒有的行,加上內連線的行。那些來自保留行表的未匹配行會被保留,而那些來自替換 null 的表中的行會由 null 替換。

對於右外連線,右表會成為保留行表,而左表會成為替換 null 的表。

全外連線

全外連線返回那些存在於右表但不存在於左表的行,加上那些存在於左表但不存在於右表的行,還有內連線的行。這兩張表既替換 null,也保留行。

兩表聯接以及左 右聯接

常用方法 select from tab i,tab j where tab i.column id tab j.column id inner join聯接方法 select from tab i inner join tab j on tab i.column id tab j.column i...

關於資料庫內聯接和左聯接

在學習資料庫的時候選擇的是一本翻譯書,有些概念沒有搞清楚,現在總結一下。內聯接語句 select from table1 one inner join table2 two on one.table1 id two.table2 id 返回的結果是兩個表中都存在的匹配資料 左聯接語句select f...

hibernate 用聯接表對映

用聯接表對映 表示從shipment到item關聯的屬性成為auction 可以在另一端使用相同的方法,吧在合格關聯對映為雙向。然而,可選的一對一關聯大多數時候都是單向的。插入 shipment shipment new shipment 12d item item new item hello s...