php mysql双内连接

fxu*_*ser 5 php mysql join

所以我有3张桌子

帖子

  • ID
  • POST_ID
  • 用户身份

评论

  • ID
  • POST_ID
  • COMMENT_ID
  • 用户身份
  • 删除

回复

  • ID
  • POST_ID
  • reply_id
  • 用户身份
  • 删除

我试图从post.user_id = x获取每个post.post_id的所有评论和回复

我试过了

    SELECT *
    FROM posts AS p
    INNER JOIN comments as c
    ON c.comment_id=p.post_id
    INNER JOIN replies as r
    ON r.reply_id=p.post_id
    WHERE
    p.user_id='x'
Run Code Online (Sandbox Code Playgroud)

返回0 ...

编辑


解决方案是

SELECT *
FROM POSTS A
LEFT JOIN COMMENTS B ON A.POST_ID=B.COMMENT_ID
LEFT JOIN REPLIES C ON A.POST_ID=C.REPLY_ID
WHERE A.USER_ID='X'
Run Code Online (Sandbox Code Playgroud)

所以,如果我在评论和回复表上添加删除列,我如何检查我收到的评论或回复是否未被删除?

我试过添加之后 post.post_id

但返回0.

AJ.*_*AJ. 7

你错过了模型中的关键关系.您需要在post_id的回复和注释中有一列,然后在post_id上加入表.

完成此更改后,您的查询将如下所示:

SELECT c.*, r.* 
FROM posts p
INNER JOIN comments c ON p.id=c.post_id
INNER JOIN replies r ON p.id=r.post_id
WHERE p.user_id=$user_id
Run Code Online (Sandbox Code Playgroud)