gpt4 book ai didi

MySQL 同时查询 2 个表的组合结果(如果 count() 也为零则获取)

转载 作者:行者123 更新时间:2023-11-29 04:41:04 26 4
gpt4 key购买 nike

我的表中有 2 个帖子可以发布在主页上。第一个有 3 个评论,另一个没有评论。下面的查询给出了 1 个结果行,但我想要 2 个结果行。

查询的预期结果

  1. 从博客表中获取请求的行
  2. 获取相关帖子 ID 的 COUNT 条评论。如果没有可用评论,则输出应为 0。

我的 2 个表的简化形式

structure               values                  expected query output   current query output
==================== ==================== ===================== =====================
blog | comments blog | comments 1 - body1 - 3 comments 1 - body1 - 3 comments
-------------------- -------------------- 2 - body2 - 0 comments
id | commentid 1 | 1
body | comment body1 | comment1
postid 2 | 1
body2 | 2
| comment2
| 1
| 3
| comment3
| 1

我的查询不适用于此表单?

你能纠正我吗

$query = 'SELECT 
blog.id,
blog.body,
COUNT(comments.postid)
FROM
blog, comments
WHERE
blog.status="publish" AND comments.postid = blog.id
ORDER BY blog.id DESC';

最佳答案

left join 返回博客,即使它们没有匹配的评论:

select  b.id
, b.body
, count(c.commentid)
from blog b
left join
comments c
on b.id = c.blogid
where b.status = 'publish'
group by
b.id
, b.body
order by
b.id desc

关于MySQL 同时查询 2 个表的组合结果(如果 count() 也为零则获取),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28317481/

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