SQL自然加入中的子句

时间:2015-11-14 13:03:05

标签: sql join oracle10g

SELECT * FROM TAB1 NATURAL JOIN TAB2
ON(CONDITION);

此查询会出错。

SELECT * FROM TAB1 NATURAL JOIN TAB2
WHERE(CONDITION);

此查询已成功执行。

那么为什么在SQL Natural Join中使用WHERE子句而不是ON子句?

1 个答案:

答案 0 :(得分:3)

natural join不需要连接条件,因为它被定义为隐式连接具有相同名称的列上的两个表。

因此on ...natural joinwhich is clearly documented in the manual无效:

  

对ON条件的限制条款
您不能使用NATURAL外连接指定此子句。

第二个查询中的where条件与联接无关。这只是应用于整体结果的条件。