GROUP_CONCAT重复相同的值

时间:2014-04-15 22:36:58

标签: mysql sql concatenation concat group-concat

我目前正在使用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'返回。

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

1 个答案:

答案 0 :(得分: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