以下 2 个查询有什么区别
更新
这个问题已经在SQL Server中的左联接与左外联接的类似问题中得到了解答。
SELECT * FROM ca
LEFT JOIN exam
ON ca.subject = exam.subject
和
SELECT * FROM ca
LEFT OUTER JOIN exam
ON ca.subject = exam.subject
表
Table 'CA'
--------------------
subject|score
----------------
ENG |25
MTH |34
BIO |18
Table 'Exam'
--------------------
subject|score
----------------
ENG |25
运行 2 个查询在 mysql, sqlserver 2008 中产生相同的结果。我没有在甲骨文中进行测试。
subject | score1 | subject | score1
--------------------------------------
ENG 14 ENG 44
MTH 28 NULL NULL
BIO 22 NULL NULL
该外部条款的目的是什么
没有区别。OUTER
关键字是可选的。
它们是等效的,因为所有 LEFT JOIN 查询也是 LEFT OUTER JOIN。
有关详细信息,请参阅 http://en.wikipedia.org/wiki/Join_(SQL)#Outer_joins。
LEFT
和 LEFT OUTER
之间没有区别;OUTER
关键字可以省略。
在某些数据库中,左联接被称为左外联接,所以它是一回事。 关键字 OUTER 是可选的 因此,提醒自己这是一个外部联接。
关键字 LEFT、RIGHT 或 FULL 是必需的。左、右和完全外连接是唯一的外连接类型。当然,关键字JOIN是强制性的。
有四种类型的连接:内联接、左联接、右联接和全外联接。左联接、右联接和完全联接只是外联接类型的缩写。