2

下面的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 子句的目的是什么

4

5 回答 5

8

没有区别。OUTER关键字是可选的。

于 2012-06-09T18:49:11.627 回答
2

它们是等价的,因为所有 LEFT JOIN 查询也是 LEFT OUTER JOIN。

有关详细信息,请参阅http://en.wikipedia.org/wiki/Join_(SQL)#Outer_joins

于 2012-06-09T18:54:19.257 回答
1

LEFT和之间没有区别LEFT OUTEROUTER关键字可以省略。

于 2012-06-09T18:49:56.030 回答
1

在某些数据库中,LEFT JOIN 被称为 LEFT OUTER JOIN,所以它是一回事。关键字 OUTER 是可选的 所以,提醒自己这是一个外连接。

关键字 LEFT、RIGHT 或 FULL 是必需的。左、右和全外连接是唯一的外连接类型。当然,关键字 JOIN 是强制性的。

于 2012-06-09T18:50:27.423 回答
0

有四种类型的连接:内连接、左外连接、右外连接和全外连接。左连接、右连接和完全连接只是外连接类型的缩写。

于 2012-06-09T18:51:11.673 回答