2011-05-21 55 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  | 
+--------+------------+ 
相关问题