繁体   English   中英

MySQL条件联接表

[英]Mysql Join tables with condition

我想列出给定用户的帖子和评论,还要列出给定用户尚未评论的帖子。

假设我有以下表格和内容

表帖

ID  TITLE
1   My post A
2   My post B
3   My post C

表注释

ID  COMMENT         POST_ID     USER_ID
1   My comment X        1          1
2   My comment Y        2          1
3   My comment Z        1          2

我跑

select * from post 
left join comment on post.id = comment.post_id
where comment.user_id=1

当然我得到了

ID  TITLE        ID    COMMENT          POST_ID    USER_ID
1   My post A     1    My comment X      1          1
2   My post B     2    My comment Y      2          1

我想获得所有帖子事件,其中一个未被用户1评论,但我不希望用户2发表评论

ID  TITLE        ID    COMMENT          POST_ID    USER_ID
1   My post A     1    My comment X      1          1
2   My post B     2    My comment Y      2          1
3   My post C   

预先感谢您的帮助

将您的条件从where移到on子句,这样即使用户尚未发表评论,您也可以获取帖子

select * from post 
left join comment
on post.id = comment.post_id
AND comment.user_id=1

在此处查看演示

尝试这个

select post.`ID`,`TITLE`,ifnull(`COMMENT`,0) comment,ifnull(`POST_ID`,0) `POST_ID`,
       ifnull(`USER_ID`,0) `USER_ID` 
from post 
left join comment
on post.id = comment.post_id
AND comment.user_id=1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM