我正在使用Oracle 11g进行研究。现在,我不理解下面的例子,因为,SQL结果是一样的。我想听一下上面例子中的加入差异
SELECT P.player_name,
P.back_no,
T.region_name,
T.team_name
FROM player P
inner join team T
ON P.team_id = T.team_id
AND P.position = 'GK'
ORDER BY P.back_no ASC;
SELECT P.player_name,
P.back_no,
T.region_name,
T.team_name
FROM player P
inner join team T
ON P.team_id = T.team_id
WHERE P.position = 'GK'
ORDER BY P.back_no ASC;
答案 0 :(得分:0)
我认为以下链接可能会帮助您了解其中的差异。 Read Here
几乎每个连接都是等值连接,因为匹配行的条件基于两个值的相等性 - 来自每个连接表的一个值。这就是使它成为等值的原因:ON条件是平等。这包括内连接和所有三种类型的外连接。
另一方面,内部联接可以基于相等性来匹配行,或者完全基于某些其他条件。如果它不是等值连接,那么它通常被称为theta连接,尽管准确地说,等同连接只是可能的θ连接之一;其他theta连接使用小于,小于或等于等作为比较运算符。只要比较评估为TRUE,匹配的行就有资格进行连接。
您可以在上面提到的链接中找到示例。