L16 分析資料庫中的左連線

2021-09-29 19:55:25 字數 1753 閱讀 5101

許久以來,在寫表的左聯接條件的時候,似乎已徹底習慣了在右表上設定聯接條件。今天意外發現居然也可以在左表上設定,而且順勢借用到了需求實踐中。

重新翻看下官方文件的說明,暫且也算溫故而知新了。

聯接型別inner指定返回所有匹配的行對。 放棄兩個表中不匹配的行。 如果未指定任何聯接型別,此設定為預設設定。

full [ outer ]

指定在結果集中包括左表或右表中不滿足聯接條件的行,並將對應於另乙個表的輸出列設為 null。 這是對通常由 inner join 返回的所有行的補充。

left [ outer ]

指定在結果集中包括左表中所有不滿足聯接條件的行,除了由內部聯接返回所有的行之外,還將另外乙個表的輸出列設定為 null。

right [outer]

指定在結果集中包括右表中所有不滿足聯接條件的行,除了由內部聯接返回所有的行之外,還將與另外乙個表對應的輸出列設定為 null。

參考**

下邊通過實際使用樣例,來重新認識下它們的區別。

測試源表資料預覽,三行兩列。

首先在左表限定額外的聯接條件a.col2=3。這就確定了在左表中只有 id與右表相同、且左表col2=3的記錄,會與右表進行聯接。左表另外的記錄,則會聯接失敗,右表輸出時,會以null替代。

修改額外的聯接條件,這裡移到右邊。理解起來的意義與第一種方式不一樣,但在本例中的結果卻是一致的。

很明顯,這裡顯示的就是全集了。

再將額外的聯接條件從on移到where後。這裡發現得到的資料集變少,明顯與前者不一致。這是因為在裡表示過濾條件了。

Oracle資料庫中的左連線與右連線

在oracle pl sql中,左連線和右連線可以用如下的方式實現 語句片斷 select emp name,dept name form employee,department where employee.emp deptid department.deptid此sql文使用了右連線,即 所在位...

Oracle資料庫中的左連線與右連線

在oracle pl sql中,左連線和右連線可以用如下的方式實現 語句片斷 select emp name,dept name form employee,department where employee.emp deptid department.deptid此sql文使用了右連線,即 所在位...

Oracle資料庫中的左連線與右連線

在oracle pl sql中,左連線和右連線可以用如下的方式實現 語句片斷 select emp name,dept name form employee,department where employee.emp deptid department.deptid此sql文使用了右連線,即 所在位...