gpt4 book ai didi

mysql - 如何选择行数作为主查询结果的子查询

转载 作者:行者123 更新时间:2023-11-29 13:54:56 24 4
gpt4 key购买 nike

仅当 WHERE places.x < 5 时,我才尝试收集某个地方的元素数量。是真的。这样做的原因是 at_placesplaces表包含数万行。

这是我想做的事情的总体思路;但我无法测试它,因为它需要很长时间才能完成。我认为能够在一个查询中包含对计数和位置的抓取会比运行后续查询抓取返回的每个位置的计数要快得多。

SELECT  `places`.`id`, 
`places`.`name`,
(SELECT COUNT(*) FROM `at_places` WHERE places_id=places.id) AS count
FROM `places`
WHERE places.x < 5

最佳答案

您可能会发现显式联接效果更好:

select p.id, p.name, ap.cnt
from places p join
(select ap.places_id, count(*) as cnt from at_places ap group by ap.places_id) ap
on p.id = ap.places_id
where p.x < 5

我相信您的性能问题是由于子查询对外部查询中的每一行执行一次所致。 at_places.places_id 上的索引也应该可以加快查询速度。

关于mysql - 如何选择行数作为主查询结果的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16017596/

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