2012-03-27 100 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