如何在一行中显示具有相同ID的特定列

时间:2017-04-04 16:05:31

标签: select

我不知道该怎么做。谁能帮忙解决这个问题? 这是我的表格如下:

cusId   orderId  itemId
00006    00003    002
00006    00003    006
00007    00001    001
00007    00001    003
00007    00004    003
00008    00002    001
00008    00002    009

我想按如下方式显示:

(002 006)
(001 003) (003)
(001 009)

这是每行代表一个不同的cusId,然后当orderId相同时将itemId分组到一个括号中。

我应该用SQL还是用Java编写代码?我该怎么做?

1 个答案:

答案 0 :(得分:1)

好的,我不确定你使用的是哪个数据库但是在MySQL中你可以这样做: -

  

选择

     

group_concat(“(”,Items,“)”)作为cRows

     

FROM

     

(SELECT group_concat(itemId)AS Items,cusId FROM testTable      GROUP BY orderId ORDER BY cusId)AS cusTable

     

GROUP BY cusTable.cusId;

其中testTable是您问题中描述的表格。注意在那里使用子查询和group_concat()在这里完成大部分工作。无需在JAVA中执行任何操作。