以下2个查询之间有什么区别
更新
这个问题已在LEFT JOIN vs. LEFT OUTER JOIN in 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中产生相同的结果。我没有在Oracle中测试。
subject | score1 | subject | score1
--------------------------------------
ENG 14 ENG 44
MTH 28 NULL NULL
BIO 22 NULL NULL
该OUTER条款的目的是什么
答案 0 :(得分:8)
没有区别。 OUTER
关键字是可选的。
答案 1 :(得分:2)
它们在所有LEFT JOIN查询也是LEFT OUTER JOIN的意义上是等效的。
有关详细信息,请参阅http://en.wikipedia.org/wiki/Join_(SQL)#Outer_joins。
答案 2 :(得分:1)
LEFT
和LEFT OUTER
之间没有区别; OUTER
关键字可能会被省略。
答案 3 :(得分:1)
在某些数据库中,LEFT JOIN称为LEFT OUTER JOIN,因此它是相同的。关键字OUTER是可选的所以,提醒自己这是一个外连接。
关键字LEFT,RIGHT或FULL是必需的。左,右和全外连接是外连接的唯一类型。当然,关键字JOIN是强制性的。
答案 4 :(得分:0)
有四种类型的连接:内部,左外部,右外部和全外部。左连接,右连接和完全连接只是外连接类型的缩写。