【问题标题】:GROUP_CONCAT repeating the same valueGROUP_CONCAT 重复相同的值
【发布时间】:2014-04-15 22:36:57
【问题描述】:

我目前正在使用 GROUP_CONCAT 根据表 A 中的逗号分隔 ID 在表 B 中查找名称。这工作正常,除非逗号分隔的 ID 相同。由于我不希望查询只返回一个值而不是用逗号分隔的相同值,因此我不能使用 DISTINCT。

当我不使用 DISTINCT 时,该值会重复五次。

TABLE A
+--------------+--------+
| company      | order  | 
+--------------+--------+
| ABC Corp     | 1,1    |
| DEF Corp     | 1,2    |
+--------------+--------+

TABLE B
+----+--------------+
| id | fruit        | 
+----+--------------+
| 1  | Apple        | 
| 2  | Banana       | 
+----+--------------+

因此,对于查询,我想将 1,1 作为“Apple,Apple”而不是“Apple”返回。

关于如何解决这个问题的任何想法?

【问题讨论】:

标签: mysql sql concatenation concat group-concat


【解决方案1】:
SELECT tb.id,GROUP_CONCAT(tb.fruit) FROM ta
JOIN tb
ON FIND_IN_SET(tb.id,ta.`order`)>0
GROUP BY tb.id

Fiddle

【讨论】:

    猜你喜欢
    • 2015-07-14
    • 2013-11-21
    • 2012-07-14
    • 1970-01-01
    • 2011-06-01
    • 2021-08-18
    • 2012-01-16
    • 1970-01-01
    • 2011-12-11
    相关资源
    最近更新 更多