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