gpt4 book ai didi

mysql - 这两个查询(条件位置)有什么区别?

转载 作者:行者123 更新时间:2023-11-29 04:43:23 25 4
gpt4 key购买 nike

第一个查询:

SELECT SUM(Rent.paid) AS Rent__summed_rents 
FROM rents AS Rent
LEFT JOIN contracts ON contracts.id = Rent.id
LEFT JOIN units ON contracts.unit_id = units.id AND units.owner_id = 29

第二个查询:

SELECT SUM(Rent.paid) AS Rent__summed_rents 
FROM rents AS Rent
LEFT JOIN contracts ON contracts.id = Rent.id
LEFT JOIN units ON contracts.unit_id = units.id
WHERE units.owner_id = 29

我应该指出结果不一样!

最佳答案

区别在于过滤条件。

例如,在您的第一个查询中,它将选择 sum(rent.paid),而不管其中一个连接是否实际产生了记录。这里的好处是,如果您需要数据而不管连接是否有效,但确实想过滤连接,那么您可以将条件过滤器放在连接子句本身上。

在您的第二个查询中,条件过滤器位于 where 中,如果连接有效(即使尽管它们是左连接)

关于mysql - 这两个查询(条件位置)有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23680870/

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