SELECT * FROM TAB1 NATURAL JOIN TAB2
ON(CONDITION);
此查询会出错。
SELECT * FROM TAB1 NATURAL JOIN TAB2
WHERE(CONDITION);
此查询已成功执行。
那么为什么在SQL Natural Join中使用WHERE子句而不是ON子句?
答案 0 :(得分:3)
natural join
不需要连接条件,因为它被定义为隐式连接具有相同名称的列上的两个表。
因此on ...
对natural join
,which is clearly documented in the manual无效:
对ON条件的限制条款
您不能使用NATURAL外连接指定此子句。
第二个查询中的where
条件与联接无关。这只是应用于整体结果的条件。