gpt4 book ai didi

Mysql - 多组查询

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

我需要一点帮助这是一个非常简单的问题,但我不知道为什么我不能得到我想要的

数据库

store
id | value
5 | s

favorite
id | store_id | value
1 | 5 | f
2 | 5 | f
3 | 5 | f

party
id |store_id | value
1 | 5 | p
2 | 5 | p

我的查询:

SELECT COUNT(p.`id`) AS parties, COUNT(f.`id`) AS favorites,s.* FROM store s
LEFT JOIN party p ON p.`store_id` = s.`id`
LEFT JOIN favorite f ON f.`store_id` = s.`id`
GROUP BY s.`id`

结果

parties | favorites |   id   | value
6 | 6 | 5 | s

这就是我想要的结果

parties | favorites |   id   | value
2 | 3 | 5 | s

有人可以帮助我吗?我已经尝试了所有我能想到的方法

最佳答案

如果您想对每个商店的聚会/收藏夹进行单独计数,则需要对 DISTINCT id 进行计数,这将消除由于 JOIN 导致的重复项;

SELECT COUNT(DISTINCT p.`id`) AS parties, 
COUNT(DISTINCT f.`id`) AS favorites,
s.*
FROM store s
LEFT JOIN party p ON p.`store_id` = s.`id`
LEFT JOIN favorite f ON f.`store_id` = s.`id`
GROUP BY s.`id`;

关于Mysql - 多组查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34762435/

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