【问题标题】:sql group_concat and subquerysql group_concat 和子查询
【发布时间】:2013-10-19 03:39:31
【问题描述】:

我有 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

问题: 如果 ids - 例如对于 12、45、67、78,如何从 car_model 表中获取此字符串的标题。我想在 1 个查询中完成 - 自定义我的查询

更新: 现在我还有一个问题: 我还有一张桌子:

 car_brand:
    id (int) (PK)
    title (varchar)

在我的 car_model 表中有一个字段 id_brand

问题 2: 我如何从 car_model 中获取标题形式 car_brand - 像这样 - 福特福克斯、菲亚特 Linea 等等 - 现在我(在你的帮助下)只从 car_model 中获取标题 现在我有:12 - Focus,Linea

更新: 我使用 -

解决了这个问题
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

【问题讨论】:

    标签: mysql subquery group-concat


    【解决方案1】:
    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 替换为实际标题。

    【讨论】:

    • 从一开始就不相似 ;)
    【解决方案2】:

    试试这个::

    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
    

    【讨论】:

      猜你喜欢
      • 2011-04-28
      • 2016-11-16
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      • 2021-10-30
      • 1970-01-01
      相关资源
      最近更新 更多