【发布时间】: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”返回。
关于如何解决这个问题的任何想法?
【问题讨论】:
-
是的,不要将您的值存储在逗号分隔的字符串中。您正在浪费数据库最强大的功能,即关系模型。en.wikipedia.org/wiki/First_normal_form
标签: mysql sql concatenation concat group-concat