如何解决如何在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)
其次,如果不能解决问题,请细分查询部分,以检查是否从注释中选择*,并加入用户,以检查与用户的链接。对帖子进行同样的操作..如果可行..让我知道,我们可以进一步查找问题出在哪里
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。