簡體   English   中英

在where子句更好或join子句中使用條件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM