[英]Using condition in where clause is better or join clause?
請假設以下查詢:
SELECT p.* FROM posts p
JOIN posts_tags pt ON pt.post_id = p.id
JOIN tags t ON pt.tag_id = t.id AND t.name = 'php'
SELECT p.* FROM posts p
JOIN posts_tags pt ON pt.post_id = p.id
JOIN tags t ON pt.tag_id = t.id
WHERE t.name = 'php'
如您所知,兩者的結果相同。 但是此條件t.name = 'php'
在第一個查詢的JOIN
子句中,而在第二個查詢的WHERE
子句中。 我想知道哪個更好,為什么?
通常,在Where
子句中添加條件可使代碼更清晰。 將它們添加到AND子句時,會感覺到JOIN基於兩個字段的組合。
在大表的情況下,在Where子句中添加條件可能有助於優化器甚至在連接之前就過濾掉記錄。 我建議將其保留在WHERE
子句中。
編輯另外,請參閱以下相關文章:結合最佳實踐
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.