0

我有一张这样的桌子

记录            
列A 列B 列C 列D
加里 2011 0 一个
加里 2011 0 b
加里 2010 年 1 个
2011 年 3 月 0 个
2010 年 3 月 1 日
2010 年 3 月 1 日

我想解析表格,如果我找到多行,其中 columnA columnB columnC 是共同的,以显示这三列中的值一次,然后显示在 columnD 上从每条记录中找到的值,其中这些列 ABC 相同。

像这样的东西

打印输出           
加里 2011 0 a,b
加里 2010 年 1 个
2011 年 3 月 0 个
2010 年 3 月 1 日 b,c

我正在使用 mysql,我尝试使用 distinct,但是当找到类似的 ABC 列时,它会重复打印。例如,而不是显示

加里 2011 0 a,b

一次,它将显示这条线两次,依此类推三、四次……对于找到的每条相似线……

谢谢你,莫兹利

4

1 回答 1

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

结果

| 专栏 | 专栏 | 专栏 | 栏目 |
-----------------------------------------
| 加里 | 2010 | 1 | 一个 |
| 加里 | 2011 | 0 | a, b |
| 玛丽 | 2010 | 1 | b, c |
| 玛丽 | 2011 | 0 | 一个 |

查看演示

于 2013-01-15T01:27:46.417 回答