我正在创建简单的图库,每个图库都可以是混合图像/视频。在画廊列表中,我想显示每个画廊的图像/视频数量。但是,我只收到一个结果行,真的不知道为什么。
画廊表示例:
id title
=====================
1 Simple gallery
2 Test gallery
简单的 gallery_items 表:
id gallery_id type title
================================
1 1 image title1
2 1 image title2
3 1 video title3
4 1 image title4
5 2 image title5
6 2 image title6
我正在使用的查询是:
select galleries.*, count(distinct A.id) as IMG, count(distinct B.id) as VID
from galleries
left join gallery_items A on (galleries.id=A.gallery_id and A.type='image')
left join gallery_items B on (galleries.id=B.gallery_id and B.type='video')
这产生了预期的结果:
id title IMG VID
================================
1 Simple gallery 3 1
但问题是只显示一行。无法显示所有行...有什么想法吗?
最佳答案
是的,Salmon 是对的...只需添加“group by galleries.id”即可解决问题:)
select galleries.*, count(distinct A.id) as IMG, count(distinct B.id) as VID
from galleries
left join gallery_items A on (galleries.id=A.gallery_id and A.type='image')
left join gallery_items B on (galleries.id=B.gallery_id and B.type='video')
group by galleries.id
关于mysql - 为什么 mysql 查询多个计数语句返回单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49464091/