Mysql连接有条件的表

时间:2014-03-02 11:05:13

标签: mysql sql join

我想列出给定用户的帖子和评论,但也列出了给定用户尚未评论的帖子。

假设我有以下表格&内容

表格

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   

提前感谢您的帮助

2 个答案:

答案 0 :(得分:0)

将条件从何处移至on​​子句,即使用户尚未评论

,您也会收到帖子
select * from post 
left join comment
on post.id = comment.post_id
AND comment.user_id=1

See Demo Here

答案 1 :(得分:0)

试试这个

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