gpt4 book ai didi

MySQL "Distinct"加入超慢

转载 作者:行者123 更新时间:2023-11-29 00:47:08 25 4
gpt4 key购买 nike

我有以下查询,它给出了正确的结果。但它 super 慢。让它变慢的原因是

AND a.id IN (SELECT id FROM st_address GROUP BY element_id)

部分。查询应显示我们从哪些国家/地区获得了多少订单。
一个人可以有多个地址,但在本例中,我们只想要一个。
否则它会多次计算订单。也许有更好的方法来实现这一目标?对人或事的独特加入?

SELECT cou.title_en, COUNT(co.id), SUM(co.price) AS amount
FROM customer_order co
JOIN st_person p ON (co.person_id = p.id)
JOIN st_address a ON (co.person_id = a.element_id AND a.element_type_id = 1)
JOIN st_country cou ON (a.country_id = cou.id)
WHERE order_status_id != 7 AND a.id IN (SELECT id FROM st_address GROUP BY element_id)
GROUP BY cou.id

最佳答案

您是否尝试过用 EXISTS 替换 IN?

AND EXISTS (SELECT 1 FROM st_address b WHERE a.id = b.id)

一旦找到符合条件的第一行,EXISTS 部分就应该停止子查询。我已经阅读了关于这是否真的发生了相互矛盾的评论,所以你可以在那里设置一个限制 1 看看你是否有任何收获。

关于MySQL "Distinct"加入超慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10089084/

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