【问题标题】:Select with Concat_ws all type from group of record使用 Concat_ws 从记录组中选择所有类型
【发布时间】:2022-01-03 10:18:04
【问题描述】:

使用 SQL,我可以执行以下操作:

SELECT T1.ID AS ORDER_ID, T2.CODE AS CODE  
FROM SCHEMA.TABLE1 AS T1 
LEFT JOIN SCHEMA.TABLE2 AS T2 ON T1.ID = T2.O_ID

输出:

ORDER_ID    CODE 
-----------------
25005CM73   AB 
25005CM73   CD 
25005CM73   EF 
25CMMM074   CD 
25CMMM074   AB 
25CMMM074   EF 
25CMMB075   GH 
25CMMB075   IG 
25CMMB075   KL

我只想为每个 ORDER_IDCONCAT 返回 1 行。

预期输出:

ORDER_ID    CODE 
--------------------
25005CM73   AB,CD,EF
25CMMM074   CD,AB,EF
25CMMB075   GH,IJ,KL

我不知道如何为一组 ORDER_ID 编写代码。

【问题讨论】:

  • 请标记您正在使用的数据库。
  • 尝试使用 group_concat()

标签: mysql sql concatenation group-concat


【解决方案1】:

GROUP_CONCAT试试这个:

SELECT 
  ORDER_ID,
  GROUP_CONCAT(CODE ORDER BY CODE SEPARATOR ',') as CODE
FROM
 (
  SELECT T1.ID AS ORDER_ID, T2.CODE AS CODE  
  FROM SCHEMA.TABLE1 AS T1 
  LEFT JOIN SCHEMA.TABLE2 AS T2 ON T1.ID = T2.O_ID
 ) as a
GROUP BY ORDER_ID;

注意:您可以在加入时直接在查询中使用 GROUP_CONCAT,而不是使用子查询。

【讨论】:

    猜你喜欢
    • 2015-12-02
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    相关资源
    最近更新 更多