[英]sql group_concat and subquery
我有2个mysql表:
car_model:
id (int) (Primary Key)
title (varchar)
id_brand (int) FK to car_brand table
car__car_model: - relation many to many
id_model (int)
id_advice_model (int)
在car__car_model中有以下数据:
(id_model) (id_advice_model)
12 12
12 45
12 67
12 78
13 13
13 12
13 67
13 105
我想要像这样获取这些数据:
12 12,45,67,78
13 13.12.67,105
我像这样使用group_concat和group by:
SELECT ccm.id_model,group_concat(ccm.id_advice_model) FROM car__car_model as ccm group by ccm.id_model
问题:如果为id,如何从car_model表中获取此字符串的标题 - 例如12,45,67,78。 我想在1个查询中执行此操作 - 自定义查询
更新:现在我有另一个问题:我还有一个表:
car_brand:
id (int) (PK)
title (varchar)
在我的car_model表中有一个字段id_brand
问题2:如何从car_model获取标题形式car_brand - 像这样 - 福特福克斯,菲亚特Linea等等 - 现在我得到(在你帮助下)从car_model获取标题现在我有:12 - 焦点,凌特
更新:我用 - 解决了这个问题 -
SELECT
id_model,group_concat(concat(cb.title,' ',cm.title))
FROM
car__car_model as ccm
inner join car_model cm on (cm.id = ccm.id_advice_model)
inner join car_brand cb on (cb.id=cm.id_brand)
group by ccm.id_model
尝试这个::
SELECT
ccm.id_model,group_concat(cm.tile, SEPARATOR ',')
FROM
car__car_model as ccm
inner join car_model cm on (cm.id = ccm.id_advice_model)
group by ccm.id_model
SELECT ccm.id_model,
group_concat(cm.title)
FROM car__car_model as ccm
inner join car_model cm on cm.id = ccm.id_advice_model
group by ccm.id_model
您可以通过在要替换的ID上加入car_model
表来将id替换为实际标题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.