MySQL @ MariaDB中GROUP_CONCAT内的GROUP BY

时间:2018-03-28 06:16:20

标签: mysql sql mariadb

我有一个查询(其中的两个表格有点复杂,以至于我不想描述它们 - 我会以下面最简单的方式做到这一点)使用GROUP_CONCAT,但我在输出行中得到了我不想要的重复值。

以下是查询:

SELECT
    GROUP_CONCAT(mr.nazwa SEPARATOR ', ')
FROM
    mp06_logos.milkruny AS mr
JOIN
    mp06_logos.milkruny_firmy AS mrf
    ON mrf.id_milkrun = mr.id
WHERE
    mr.status = 1
    AND mrf.id_firmy_zaladunku = 5445
    AND mrf.adres_firmy_zaladunku = 5188

输出行是:

Milkrun XVI, Milkrun XVI, Milkrun XVI, Milkrun XVI, Milkrun XVII, Milkrun XVII, Milkrun XVII, Milkrun XVIII, Milkrun XIX, Milkrun XIX, Milkrun XIX, Milkrun XX, Milkrun XX, Milkrun XX, Milkrun XXI, Milkrun XXII, Milkrun XXII, Milkrun XXII, Milkrun XXII, Milkrun XXIII, Milkrun XXIII, Milkrun XXIII, Milkrun XXIII, Milkrun XXIII, Milkrun XXIII, Milkrun XXIII, Milkrun XXIII, Milkrun XXI

正如您在输出中所看到的那样,例如:Milkrun XVI重复了4次。

我试图添加GROUP BY查询的一些内容,但这只会导致更多问题,而且此查询与我想要的最相似。

我只是不想在输出中重复值。

milkrunyUNIQUEid

milkruny_firmyUNIQUEid,列id_milkrun,其余的不是UNIQUE,而且他们没有任何其他key 1}}。

1 个答案:

答案 0 :(得分:2)

您可以在DISTINCT

中使用GROUP_CONCAT()
 GROUP_CONCAT(DISTINCT mr.nazwa SEPARATOR ', ')

演示

  

http://sqlfiddle.com/#!9/867089/1