【发布时间】:2012-07-24 14:28:39
【问题描述】:
这是我的表格的结构:
这是我想要的查询结果(考虑到用户向我提供了2|4|1 模式):
这是我尝试过的:
SELECT parcel.TrackCode, parcelType.Name, GROUP_CONCAT(track.DateTime SEPARATOR '|') AS dt
FROM track
JOIN parcel ON track.ParcelID = parcel.ID
JOIN parcelType ON parcel.ParcelTypeID = parcelType.ID
JOIN event ON track.EventID = event.ID
GROUP BY parcel.ID;
结果是:
所以问题是我需要 GROUP_CONCAT() 将数据划分为几个字段(date where track.eventID = 3、date where track.eventID = 1、date where track.eventID = 5、date where track.eventID = 7 # 考虑到模式是3|1|5|7)。有什么想法吗?
【问题讨论】:
-
用户是否总是只需要查看 3 个事件?
-
不,模式可能是 3|2|5|4|1|7。更改了第二个模式示例以使其更加清晰。谢谢。
-
呃。模式中有最大数量的项目吗?
-
如果您的事件类型数量有限,为什么不一次汇总所有类型,然后选择用户想要的字段?
-
@HolgerBrandt 该模式在配置文件中定义,项数不限。
标签: mysql sql group-concat