在一个查询中计算多个记录计数
SELECT li.listing_id, li.title, p.name, c.comment, COUNT( * ) AS pic_count
FROM listings li
LEFT JOIN photos p ON li.listing_id = p.listing_id
LEFT JOIN comments c ON li.listing_id = c.listing_id
WHERE li.listing_id =1
GROUP BY li.listing_id
LIMIT 1;
上面的查询为我提供了给定listing_id的照片数,同样我希望在同一查询中计算该listing_id的评论数,这可能吗?一次查询中有 2 个计数..
SELECT li.listing_id, li.title, p.name, c.comment, COUNT( * ) AS pic_count
FROM listings li
LEFT JOIN photos p ON li.listing_id = p.listing_id
LEFT JOIN comments c ON li.listing_id = c.listing_id
WHERE li.listing_id =1
GROUP BY li.listing_id
LIMIT 1;
above query gives me the count of photos for given listing_id, same way i want the count of comments for that listing_id in same query, is that possible ? 2 counts in one query ..
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的数错了。如果您想按列表分组,p.name 不应出现在字段列表中。但即使没有它,由于
*
的计数,没有照片的列表您也会得到 1。如果您的照片有唯一的 ID,您可以执行以下操作:
Your count is wrong. p.name should not be in the field list if you want to group by listing. But even without it, you get 1 for listings without a photo, because of the
*
in count.If your foto's got a unique id, you can do this: