gpt4 book ai didi

mysql - 在where子句中使用条件更好还是在join子句中使用?

转载 作者:行者123 更新时间:2023-11-29 18:33:56 26 4
gpt4 key购买 nike

请假设以下查询:

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 子句中。

编辑另请参阅此相关帖子:Join best practices

关于mysql - 在where子句中使用条件更好还是在join子句中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45466422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com