2011-05-21 51 views
0
TABLE A 
Row IdA ValueA 
1 1 ABCD 
2 2 EFGH 
3 3 IJKL 

TABLE B 
Row IdB ValueB 
1 1 QWER 
2 2 TYUI 
3 3 OPAS 

CONNECTOR X 
Row IdA IdB 
1  1 1 
2  1 2 
3  2 3 

我所要的輸出顯示:MySQL的:如何在列Z1添加一個字符串在行X2與ID Y1到一行ID Y1列Z1 X1?

OUTPUT 
Value A --- ValueB(1), ValueB(2) 
ABCD --- QWER, TYUI 

所以,基本上,每有一個在連接器表的IDA柱雙峯時,這兩個(或更多)項合併爲值字段中的字符串我的輸出。

這是可行的,甚至與一個MySQL查詢,或者我-have-訴諸貫穿整個數據庫與PHP數組排序?如果可能的話,我寧願避免這種情況!

我已經看了各種JOIN無濟於事,想過使用GROUP BY和COUNT(DISTINCT ...)查詢,但它似乎是一種非常不雅的方法。歡迎提出建議!

回答

0
SELECT a.ValueA, GROUP_CONCAT(b.ValueB SEPARATOR ', ') AS ValuesB 
FROM connector c 
JOIN tblA a ON c.IdA = a.IdA 
JOIN tblB b ON c.IdB = b.IdB 
GROUP BY a.IdA 

會給你的結果:

+--------+------------+ 
| ValueA | ValuesB | 
+--------+------------+ 
| ABCD | QWER, TYUI | 
| EFGH | OPAS  | 
+--------+------------+ 
相關問題