2012-03-27 102 views
1

可能重複:
Left join and Left outer join in SQL Server左外連接與左連接相同嗎?

根據我的研究,下面的語句是正確的

A) Join is the same as inner join. 
B) Left outer join is the same as left join 
C) Right outer join is the same as right join 
D) There is no such thing as left inner join and right inner join 
+5

首先,我認爲你應該放一個'家庭作業'標籤。 – 2012-03-27 13:01:11

回答

1

關鍵字OUTER是可選的,但在我看來,這應該是強制性的。在此之前(當然也是),我的建議總是寫出來,提醒自己這是一個外部連接。

關鍵字LEFT,RIGHT或FULL是強制性的。左外連接,右外連接和全外連接是唯一的外連接類型。當然,關鍵字JOIN是強制性的。

您提到INNER JOIN。這與FULL [OUTER] JOIN不一樣。 INNER表示所有結果行都是通過匹配兩個表之間的某種條件生成的行。外連接有結果行,有時不存在匹配,但是一個表或另一個或兩個表中的行會返回而不匹配。

除了內部和外部還有一種其他類型的連接,那就是CROSS JOIN,但這是另一天的另一個問題。

+5

爲什麼你認爲'OUTER'應該是強制性的?您無法將「LEFT JOIN」與「INNER JOIN」混淆,因爲您自己在答案中聲明。 – JNK 2012-03-27 13:20:18

+0

「它應該是強制性的......寫出來,提醒自己這是一個外部連接」 - 並不是我強烈的論點。怎麼樣,迫使用戶將事情寫出來作爲使用非明確設計用於生成空值的非關係特性的懲罰?我會爲此投票:)但知道一旦進入SQL標準,它永遠不會被刪除。例如,委員會可能會將「遊標中的SELECT *」視爲「棄用」,但它們永遠無法將其從標準中刪除。 – onedaywhen 2012-03-27 13:49:12

+1

「除了內部和外部之外,還有一種其他類型的連接」 - 不要忘記工會連接。 – onedaywhen 2012-03-27 13:51:41