23

如果它们属于一个组,我有查询连接字符串。

    SELECT e.id, 
        ke.value,
        re.value AS re_value,
        GROUP_CONCAT(g.value,', ')
        FROM entry e
                INNER JOIN k_ele ke ON e.id = ke.fk
                INNER JOIN r_ele re ON e.id = re.fk
                INNER JOIN sense s ON e.id = s.fk
                INNER JOIN gloss g ON s.id = g.fk
WHERE g.lang IS NULL
GROUP BY s.id
ORDER BY re_value

GROUP_CONCAT(g.value,', ')

正在给出这个结果。

深情的关系, 深情的关系, 深情的关系, 深情的关系, 爱的关系, 爱的关系, 爱的关系, 爱的关系

如您所见,连接中有重复。如何避免连接中的重复?

4

2 回答 2

43
GROUP_CONCAT(DISTINCT g.value)
于 2013-08-17T12:32:21.647 回答
6

您必须在应用 GROUP_CONCAT 之前删除重复项,这通常需要子查询:

SELECT a, GROUP_CONCAT(b)
FROM (SELECT DISTINCT a, b
      FROM MyTable)
GROUP BY a
于 2013-08-17T10:05:13.590 回答