首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:简单查询修改

问MySQL:简单查询修改
EN

Stack Overflow用户
提问于 2013-03-03 08:50:38
回答 2查看 40关注 0票数 1

有以下三张表:

  1. 帖子
  2. posts_replies
  3. 点赞

这个查询正在返回我的帖子,他们的回复都很好。

代码语言:javascript
复制
SELECT posts.title, posts.num, posts.status, posts.category, posts.content, posts.member_num, COUNT( posts_replies.blyrb_num ) AS count, COUNT( likes.comment_num ) AS likes_count
FROM posts_replies
INNER JOIN posts ON ( posts_replies.blyrb_num = posts.num )
LEFT JOIN likes ON ( likes.comment_num = posts_replies.num )
WHERE posts.status <>3
AND posts.access = 'Public'
AND (
posts.title LIKE '%dress%'
OR posts.content LIKE '%dress%'
)
GROUP BY posts.num

但问题是,这个查询只返回有一些答复的帖子。我不想要这样的限制,我要所有的帖子,不管他们有没有答复。

我在这里做错了什么有什么想法吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-03 08:53:28

在“从”和“第一次加入”中交换表,并将第一个“连接”更改为“左联接”,就可以做到这一点:

代码语言:javascript
复制
SELECT posts.title, posts.num, posts.status, posts.category, posts.content, posts.member_num, COUNT( posts_replies.blyrb_num ) AS count, COUNT( likes.comment_num ) AS likes_count
FROM posts
LEFT JOIN posts_replies ON ( posts_replies.blyrb_num = posts.num )
LEFT JOIN likes ON ( likes.comment_num = posts_replies.num )
WHERE posts.status <>3
AND posts.access = 'Public'
AND (
posts.title LIKE '%dress%'
OR posts.content LIKE '%dress%'
)
GROUP BY posts.num
票数 2
EN

Stack Overflow用户

发布于 2013-03-03 08:53:48

要做的事情:

  • 使用LEFT JOIN而不是INNER JOIN
  • 交换表:POST和posts_replies

询问,

代码语言:javascript
复制
SELECT  posts.title, 
        posts.num, 
        posts.status, 
        posts.category, 
        posts.content, 
        posts.member_num, 
        COUNT( posts_replies.blyrb_num ) AS count, 
        COUNT( likes.comment_num ) AS likes_count
FROM    posts
        LEFT JOIN posts_replies 
            ON ( posts_replies.blyrb_num = posts.num )
        LEFT JOIN likes 
            ON ( likes.comment_num = posts_replies.num )
WHERE   posts.status <> 3 AND 
        posts.access = 'Public'
        AND 
        (
            posts.title LIKE '%dress%'
            OR posts.content LIKE '%dress%'
        )
GROUP   BY posts.num
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15184033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档