【发布时间】:2017-05-14 15:57:25
【问题描述】:
关于my last question,我遇到了排序连接值的问题。
在这个例子中,我有一个表,其中包含在这个问题中不重要的报价,但它是主表:
Table offers
----------------------------
id title price
----------------------------
1 Offer 1 title 300 Eur
2 Offer 2 title 250 Eur
3 Offer 3 title 350 Eur
有一个部门城市列表:
Table departments
----------------------------
id name
----------------------------
1 London
2 Leeds
3 Manchester
4 Glasgow
以及与报价表的关系表
Table rel_departments
------------------------
id offer_id rel_id
------------------------
1 1 1
2 1 3
3 1 2
4 2 1
5 3 4
在运行查询以获取连接的部门城市名称时,我得到了结果。但是,这个结果并不好。
SELECT `offers`.id,
GROUP_CONCAT(`departments`.`name` SEPARATOR ', ') AS departures
FROM `offers`
INNER JOIN `rel_departments` ON (`rel_departments`.`offer_id` = `offers`.id)
INNER JOIN `departments` ON (`rel_departments`.`rel_id` = `departments`.id)
GROUP by offers.id
我得到了结果:
id departures
----------------------------------------
1 London, Manchester, Leeds
2 London
3 Glasgow
这没关系,但我需要对它们进行排序(以这种方式按关系表中的 id 降序排列),这意味着我需要结果是(对于第一个报价 id)Leeds、Manchester、London
我已经尝试了一切,但没有成功。有什么想法吗?
附言HERE 是一个 sqlfiddle 演示
【问题讨论】:
标签: mysql sql-order-by group-concat