2015-01-10 2 views
0

저는 mysql의 다른 테이블에 대한 참조만을 포함하는 테이블을 통해 값을 선택하려고합니다. 참조 테이블에는 INT userId, answer1, answer2, date 만 포함됩니다.MYSQL 서브 쿼리 (조인 포함)

그들은 사용자 테이블과 응답 테이블을 참조합니다. 응답 테이블에는 id, 대답, 난이도의 세 열이 있습니다.

문제는 동일한 쿼리의 동일한 열에서 두 개의 값을 선택하는 데 있습니다. 지금까지 무슨 일이 일어 났는가?

SELECT 
    nickname, 
    (SELECT answer FROM feed LEFT JOIN answerTable a ON answer1 = s.id) AS first, 
    (SELECT answer FROM feed LEFT JOIN answerTable a ON answer2 = s.id) AS second, 
    DATE_FORMAT(date,'%H:%i:%S %e-%c-%Y') AS date 
FROM feed 
LEFT JOIN users ON user = id; 

이 쿼리에서는 하위 쿼리에서 여러 값을 얻습니다.

필자는 잠시 동안 노력했지만 이것에 대해 새로운 시각이 필요합니다. 도움 주셔서 감사합니다.

답변

0

시도하십시오 :

SELECT 
    nickname, 
    a1.answer AS a_first, 
    a2.answer AS a_second, 
    DATE_FORMAT(date,'%H:%i:%S %e-%c-%Y') AS date 
FROM 
    feed 
    LEFT JOIN users ON feed.userId = users.id 
    LEFT JOIN answerTable a1 ON feed.answer1 = a1.id 
    LEFT JOIN answerTable a2 ON feed.answer2 = a2.id; 

내가 잘 이해하면 users 테이블에서와 answers 테이블에서 잡아 당겨 답변의 각 테이블 feed에서의 id로 사용자에 대한 자세한 정보를 연결해야합니다. 따라서 left join ~ users 외에 이미 각각의 응답 ID에 2 개의 조인이 추가되었습니다. 즉, answer1과 answer2에 대해 별도로 응답 테이블을 검색합니다.

나는 그것이 당신에게 어떤 식 으로든 도움이되기를 바랍니다.

+0

나는 도울 수있어서 기쁩니다. 문안 인사. –