我目前正在使用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'返回。
关于如何解决这个问题的任何想法?
答案 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