我有一张这样的表
records columnA columnB columnC columnD gary 2011 0 a gary 2011 0 b gary 2010 1 a mary 2011 0 a mary 2010 1 b mary 2010 1 c
我想解析表格,如果我找到多个行,其中columnA columnB columnC是常见的,则显示这三列中的值一次,后面是在每个记录的columnD上找到的值,其中那些列ABC的位置相同。
像这样的东西
print output gary 2011 0 a,b gary 2010 1 a mary 2011 0 a mary 2010 1 b,c
我正在使用mysql,我尝试使用distinct,但是当找到类似的A B C列时它会重复打印。例如,而不是显示
gary 2011 0 a,b
一次,它会消失这条线两次,所以三,四......次,发现每条相似的线......
谢谢你, 莫仕莱
答案 0 :(得分:0)
您正在寻找GROUP_CONCAT
:
SELECT columnA, columnB, columnC,
GROUP_CONCAT(DISTINCT columnD
ORDER BY columnD ASC SEPARATOR ', ') AS columnD
FROM records
GROUP BY columnA, columnB, columnC
<强>结果强>
| COLUMNA | COLUMNB | COLUMNC | COLUMND | ----------------------------------------- | gary | 2010 | 1 | a | | gary | 2011 | 0 | a, b | | mary | 2010 | 1 | b, c | | mary | 2011 | 0 | a |