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!

¿Fue útil?

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
scroll top