如何在MySQL中加入三度

问题描述

|| 我有以下表格:
users(id,name)
posts (id,text,userId)
comments (id,userId,postId)
我想返回一个帖子,其所有者名称评论以及每个评论的所有者。我无法获得评论所有者的数据。我这样写:
SELECT posts.id,posts.text,users.id,users.name,comments.text AS commentText,commenters.id,commenters.name
FROM posts
    JOIN users
        ON posts.userId = users.id
    LEFT JOIN comments
        ON posts.id = comments.postId 
            LEFT JOIN users AS commenters
                ON comments.userId = users.id
        WHERE posts.id = @postId
查询的问题是commenters.id和commenters.name列变回空白。知道我哪里出错了吗?     

解决方法

        嗯,分解查询。 好吧,首先进行一点更正
SELECT posts.id,posts.text,users.id,users.name,comments.text AS commentText,commenters.id,commenters.name
FROM posts
    JOIN users
        ON posts.userId = users.id
    LEFT JOIN comments
        ON posts.id = comments.postId 
            LEFT JOIN users AS commenters
                ON comments.userId = commenters.id
(您有users.id,而不是commenters.id) 其次,如果不能解决问题,请细分查询部分,以检查是否从注释中选择*,并加入用户,以检查与用户的链接。对帖子进行同样的操作..如果可行..让我知道,我们可以进一步查找问题出在哪里