2013-07-30 59 views
0

我想從數據庫中獲取數據,但我有這個錯誤我該如何解決?#1241 - 操作數應該包含1列MYSQL

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

在你的想法中,當你在子查詢中選擇多個列時,結果應該是怎樣的? –

回答

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. 連接兩個信息,所以你有一個輸出字段;

  3. 爲什麼你使用子查詢,當您在主查詢加入你的用戶表(使用相同的條件)

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 
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 
相關問題