我试图从数据库中获取数据,但是我有这个错误我该如何解决?
SELECT post.text,users.name,users.surname,users.profile_id,post.post_id,comments.text as comment,
(SELECT user.name, user.surname FROM users user WHERE profile_id = comments.profile_id) as name_comment
FROM post
INNER JOIN users ON users.profile_id = post.profile_id
INNER JOIN comments ON comments.profile_post = post.post_id
答案 0 :(得分:1)
只需两次加入用户表
SELECT
post.text,
userpost.name,
userpost.surname,
userpost.profile_id,
post.post_id,
comments.text as comment,
usercomment.name, usercomment.surname -- this
FROM post
INNER JOIN users userpost ON userpost.profile_id = post.profile_id
INNER JOIN comments ON comments.profile_post = post.post_id
INNER JOIN users usercomment ON comments.profile_id = usercomment.profile_id
答案 1 :(得分:0)
您的子查询:
(SELECT user.name, user.surname
FROM users user
WHERE profile_id = comments.profile_id) as name_comment
有2个字段而不是1个
你可以:
使用2个不同的子查询来获取user.name和user.surname;
连接两个信息,因此您有一个输出字段;
为什么在主查询中加入用户表时使用子查询(具有相同条件)
答案 2 :(得分:0)
试试这个
SELECT post.text,users.name,users.surname,users.profile_id,post.post_id,comments.text as comment
FROM post
INNER JOIN users ON users.profile_id = post.profile_id
INNER JOIN comments ON comments.profile_post = post.post_id
WHERE profile_id = comments.profile_id