0

我正在尝试从数据库中获取数据,但是我遇到了这个错误,我该如何解决?

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
4

3 回答 3

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
于 2013-07-30T12:47:16.513 回答
0

您的子查询:

(SELECT user.name, user.surname 
FROM users user
WHERE profile_id = comments.profile_id) as name_comment 

有 2 个字段而不是 1 个

你可以:

  1. 使用 2 个不同的子查询来获取 user.name 和 user.surname;

  2. 连接这两个信息,这样你就有一个输出字段;

  3. 为什么在主查询中加入用户表时使用子查询(条件相同)

于 2013-07-30T12:45:00.643 回答
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
于 2013-07-30T12:46:30.600 回答