2012-01-28 2 views
0

2 행만 생성하는 쿼리가 있습니다. 각 행에는 하나의 질문과 그에 해당하는 대답이 들어 있습니다. 내가하고 싶은 일은 4 개의 열이있는 하나의 행을 갖는 것입니다. 어떻게 할 수 있습니까? 값을 문자열에 연결할 수는 있지만 오히려이 작업을 수행하지는 않을 것입니다.2 행을 하나의 결과로 얻는 방법

예를 들어 알려줄 수 있습니까?

Q1    A1   Q2     A2 
Some question Some answer Another question Another answer 

이 내 쿼리

SELECT question, answer FROM 
user_question AS uq 
Join question AS q ON q.question_id = uq.question_id 
+0

Muzz, Q1과 Q2는 어떻게 연결되어 있습니까? userId 란 무엇입니까? 더 많은 정보를 제공해야합니다. –

답변

1

당신이 할 수 물론, 당신은 단지 두 번 같은 테이블을 쿼리해야합니다이 후 난 것입니다.

SELECT a.question as q1, 
     a.answer as a1, 
     b.question as q2, 
     b.answer as a2 
FROM user_question as a, 
     user_question as b 
WHERE a.question_id = 1001 
AND b.question_id = 1002; 
+0

내'question' 테이블은 어디에 결합됩니까? – Muzz

+0

BicycleDude,이 작업을 수행 할 수 없습니다. 또한 questionID가 아닌 WHERE 절에 userID를 사용해야합니다. – Muzz

0

방법 UNION을 사용하는 방법에 대해 : 당신이 테이블의 버전은 SELECT와 부분에 사용되는 확신 할 수 있도록 당신은 AS 키워드를 사용해야합니까? 이 같은

:

SELECT iQuestion, iAnswer 
FROM 
    (SELECT Q1 as iQuestion, -- change to orig column name 
      A1 as iAnswer, -- change to orig column name 
      questionID 
    FROM user_question INNER JOIN question 
       ON user_question.question_id = question.question_id 
    UNION 
    SELECT Q2 as iQuestion, -- change to orig column name 
      A2 as iAnswer, -- change to orig column name 
      questionID 
    FROM user_question INNER JOIN question 
       ON user_question.question_id = question.question_id) as iResult 
WHERE iResult = 'QUESTIONID HERE' 

PS : 우리는 정확한 열 이름과 당신이 WHERE 상태에서 사용하게 될 분야를 알게 될 것입니다 있도록 테이블의 SCHEMA을 게시하시기 바랍니다.

관련 문제