的所有值我不明白爲什麼右外連接(下面的示例)沒有爲左外連接提供表的完整數據集;因爲外連接總是保留相應表的行。自加入SQL Oracle;爲什麼右外連接不保留表
創建表
create table join_test
(id number unique not null, name varchar2(10), department varchar2(10));
填充表
select * from join_test;
ID NAME DEPARTMENT 1 stelios sa 2 andros sa 3 stav ba 4 mary ba 5 antonia la 6 lambros ka
內加入
select j1.name, j1.department
from join_test j1 join join_test j2
on(j1.department=j2.department and j1.name<>j2.name);
NAME DEPARTMENT andros sa steliso sa mary ba stav ba
左外連接
select j1.name, j1.department
from join_test j1 left join join_test j2
on(j1.department=j2.department and j1.name<>j2.name)
NAME DEPARTMENT andros sa steliso sa mary ba stav ba antonia la lambros ka
右外連接
select j1.name, j1.department
from join_test j1 right join join_test j2
on(j1.department=j2.department and j1.name<>j2.name)
NAME DEPARTMENT steliso sa andros sa stav ba mary ba
更改選擇列表J2
select j2.name, j2.department
from join_test j1 right join join_test j2
on(j1.department=j2.department and j1.name<>j2.name)
NAME DEPARTMENT andros sa steliso sa mary ba stav ba antonia la lambros ka
這是在oracle中完成的 – Stelios
這會在SQL Fiddle(http://www.sqlfiddle.com/#!4/1e7075/2)中產生正確的結果。您的示例運行出現問題。 –