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

users テーブルに 2 回 JOIN するだけです

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 

1つではなく2つのフィールドがあります

あなたはできる:

  1. user.name と user.surname を取得するには、2 つの異なるサブクエリを使用します。

  2. 2 つの情報を連結して、1 つの出力フィールドを作成します。

  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 に答える