MySQL GROUP_CONCAT con 2 une devuelve los resultados deseados
-
29-09-2019 - |
Pregunta
Al ejecutar esta consulta que espero te obtener 2 mobilenumbers y 1 categoría, en vez me sale 2 categorías, lo que estoy haciendo mal? Supongo que tiene que ver con la forma en que me uno a las cosas?
El usuario, puede tener múltiples IMEI, categoryjoin une un usuario en varias categorías
SELECT
u.*,
group_concat(i.mobilenumber) as mobilenumbers,
group_concat(c.name) as categories
FROM
users AS u
INNER JOIN
categoryjoin AS cj
ON
u.uid = cj.user_id
INNER JOIN
categories AS c
ON
cj.category_id = c.uid
INNER JOIN
imei AS i
ON
u.uid = i.user_id
GROUP BY
u.uid
Grande por su ayuda, gracias pre!
Solución
Si un usuario coincide con una categoría, pero coincide con 2 filas de IMEI, a continuación, la categoría se duplicará en el conjunto de resultados. Usted puede deshacerse de los valores redundantes de GROUP_CONCAT usando DISTINCT
:
SELECT
u.*,
group_concat(distinct i.mobilenumber) as mobilenumbers,
group_concat(distinct c.name) as categories
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow