2012-08-10 3 views
0

예를 들어 나는 table1과 table2라는 테이블을 가지고 있다고 말합니다.join mysql을 사용하여 ID가있는 행을 그룹화 하시겠습니까?

table1{q_id,q_text,date}, 
table2{a_id,q_id,a_text} 

은 내가 이렇게 두 테이블에 쿼리를 조인 실행 한 자신의 둘 사이에 많은 관계로 하나가 될 것이기 때문에

SELECT * 
FROM table1 
INNER JOIN table2 ON table1.q_id = table2.q_id 

내가이

q_id  q_text date a_id q_id a_text 
1  sometext ..  13  1 someanswer 
1  sometext2 ..  67  1 someanswet2 

같은 데이터를 얻을 것 테이블 thier는 하나의 q_id에 대해 많은 a_ids가 될 수 있습니다. 동일한 q_id를 가진 모든 a_id를 동일한 행에 넣으려는 쿼리를 만들고 싶습니다. 무슨 뜻인지 알게되면. 그래서 위의 두 행은 같은 q_id를 가지므로 같은 행에 있어야합니다. 감사

+2

당신은 ['GROUP_CONCAT()'(http://dev.mysql.com/doc/refman/5.0/을 찾고 수 있습니다 en/group-by-functions.html # function_group-concat). – Matt

+0

"같은 행"을 의미하는 것이 아닙니다. 어떤 행의 데이터를 원하십니까? 한 행은 동일한 필드에 대해 두 개의 다른 항목을 가질 수 없습니다. – KRyan

답변

0
SELECT table1.q_id,table1.q_text,table1.date,table2.a_id,table2.a_text 
    -> FROM table1 
    -> LEFT JOIN table2 
    -> ON table1.q_id = table2.q_id; 
GROUP_CONCAT과 구분 기호를 사용하여
0
SELECT table1.q_id,table1.q_text,table1.date,table2.a_id,table2.a_text, group_concat(table2.a_id SEPARATOR ',') as a_ids 
-> FROM table1 
-> LEFT JOIN table2 
-> ON table1.q_id = table2.q_id 
-> GROUP BY table1.q_id 

','

관련 문제