【发布时间】:2015-11-09 03:52:33
【问题描述】:
这是我的 SQL
SET group_concat_max_len = 18446744073709551615;
SELECT
`event`.title AS 'Event Title',
eventitem.startdate AS 'Start Date',
`get_unique_items` (
CONVERT (
group_concat(eventstage.title SEPARATOR ',') USING utf8
)
) AS 'Stage',
`get_unique_items` (
CONVERT (
group_concat(artists.artistname SEPARATOR ',') USING utf8
)
) AS 'Artist Name'
FROM
eventstage
INNER JOIN `event` ON eventstage.eventid = `event`.eventid
INNER JOIN eventitem ON eventitem.eventstageid = eventstage.eventstageid
INNER JOIN artists ON eventitem.artistid = artists.artistid
GROUP BY
eventstage.eventid,
eventitem.eventstageid,
eventitem.startdate
get_unique_items 顾名思义。它会删除任何重复项。
现在每条记录都有一个eventitem 有一个ranking 字段。每个艺人都有一个排名,0 表示最高,数字越高表示排名越低。
如何在结果中操作 SQL,在“艺术家姓名”列下,我得到一个按排名顺序排列的艺术家列表?
我不认为它与MySQL: Sort GROUP_CONCAT values 相同,因为我没有在排名字段上使用该功能 谢谢
【问题讨论】:
-
GROUP BY 是做什么的?
-
我应该把 ORDER BY 放在哪里,因为我根本没有输出排名或在表上使用 GROUP_CONCAT。对不起@Strawberry 你是什么意思它有什么作用???
-
你没有使用聚合函数,那么为什么你的查询中有一个 GROUP BY 子句?
标签: mysql sql group-by sql-order-by