2012-08-10 23 views
0

說例如我有一個表table1和table2;使用連接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將是一個兩者之間一對多的關係表 他可能是一個很多a_ids一個q_id 我想做一個查詢,把具有相同q_id的所有a_id放入同一行。 如果你明白我的意思。所以上面的兩行都有相同的q_id,所以我希望它們在同一行。感謝

+2

你可能會尋找['GROUP_CONCAT()'](http://dev.mysql.com/doc/refman/5.0/烯/組逐functions.html#function_group-的concat)。 – Matt 2012-08-10 17:06:14

+0

我不是你的意思是「同一行」 - 你想要哪行數據?對於同一個字段,一行不能有兩個不同的條目。 – KRyan 2012-08-10 17:06:21

回答

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; 
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 

使用GROUP_CONCAT和分離器 ''

相關問題