Estoy teniendo un problema con la siguiente consulta (si se trata de una cuestión duplicado entonces me siento mucho, pero me parece que no puede encontrar nada hasta ahora de que me puede ayudar):MySQL en donde
SELECT d.*, GROUP_CONCAT(g.name ORDER BY g.name SEPARATOR ", ") AS members
FROM table_d AS d LEFT OUTER JOIN table_g AS g ON (d.eventid = g.id)
WHERE members LIKE '%p%';
Parece que MySQL no puede manejar una comparación de columnas GROUP_CONCAT en una cláusula WHERE. Así que mi pregunta es muy simple. ¿Hay alguna solución para esto, como usar subconsultas o algo similar? Realmente necesito este trozo de código para trabajar y no hay otra alternativa de usar aparte de manejar esto en la consulta misma.
EDIT 1:
no mostrará el código real, ya que podría ser confidencial, voy a tener que consultar con mis colegas. De todos modos, acabo de escribir este código para darte una idea de cómo se ve la declaración, aunque estoy de acuerdo contigo en que no tiene mucho sentido. Veré las respuestas a continuación en un minuto, luego te llamaré. Nuevamente gracias por toda la ayuda ya!
EDIT 2:
intentado usar HAVING
, pero que sólo funciona cuando no estoy usando GROUP BY
. Cuando lo intento, me da un error de sintaxis, pero cuando elimino el GROUP BY
la consulta funciona perfectamente. La cuestión es que necesito el GROUP BY
; de lo contrario, la consulta no tendría sentido para mí.
Datos 3:
Ok, así que he cometido un error estúpido y puso HAVING
antes GROUP BY
, lo que obviamente no funciona. Gracias por toda la ayuda, ¡funciona ahora!
lo que está mal con 'g.name como 'peter%%' '? – ajreal