Hello guys我有一个关于SQL中AND子句的具体问题。内部联接或WHERE子句中的AND语句之间的区别
两个以下SQL语句提供相同的输出:
SELECT * FROM Table1 t1 INNER JOIN Table2 t2 ON t1.id = t2.id AND t2.id = 0
SELECT * FROM Table1 t1 INNER JOIN Table2 t2 ON t1.id = t2.id WHERE t2.id = 0
通知在查询的末尾之差。在第一个中,我使用AND子句(之前不使用WHERE子句)。在第二个我使用WHERE指定我的ID。
第一个语法是否正确?如果是第一个更好的性能(不使用WHERE子句进行过滤)。我应该期望不同的查询有不同的输出吗?
感谢您的帮助。
你可以看看由数据库生成的查询计划,看看它们是不同的。使用MySQL数据库,您可以使用EXPLAIN语句来完成此操作,但对于其他数据库,这可能与此类似。 – 2012-03-03 22:45:18