我不知道该怎么做。谁能帮忙解决这个问题? 这是我的表格如下:
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编写代码?我该怎么做?
答案 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中执行任何操作。