[英]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.