2013-07-30 2 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. 사용이 별개의 하위 쿼리 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 
관련 문제