Problema con Group-Concat y GROUP BY

Traté de tomar esta consulta:

SELECT
    events.ID,
    events.EVENT_NAME,
    GROUP_CONCAT(music_styles.MUSIC_STYLE_NAME) AS MUSIC_STYLE_NAME
FROM events
INNER JOIN events_music_styles
    ON events.ID = events_music_styles.event_id
INNER JOIN music_styles
    ON events_music_styles.music_style_id = music_styles.id
GROUP BY events.ID

Que funciona bien, e hice este:

$id = (int) $_GET['id'];
$data2 = mysql_query("
SELECT 
    events.ID,
    events.EVENT_NAME,
    events.SHORT_EVENT_DESC,
    events.SMALL_POSTER_URL,
    events.start_datetime,
    events.VENUE_LOCATION
    GROUP_CONCAT(music_styles.MUSIC_STYLE_NAME) AS MUSIC_STYLE_NAME
FROM 
    venues
INNER JOIN events
    ON events.VENUE_LOCATION = venues.ID 
INNER JOIN events_music_styles
    ON events.ID = events_music_styles.event_id
INNER JOIN music_styles
    ON events_music_styles.music_style_id = music_styles.id
WHERE
    events.VENUE_LOCATION = venues.ID
AND
    WHERE start_datetime >= '$DATE_START_SELECTED'
AND 
    venues.id = ".$id."
GROUP BY events.start_datetime) or die(mysql_error());

Lo que me da dos errores:

Primero es con el Grupo Concat:

Tiene un error en su sintaxis SQL; verifique el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de 'GROUP_CONCAT (music_styles.MUSIC_STYLE_NAME) AS MUSIC_STYLE_NAME FROM places IN'

Entiendo que estoy recuperando datos principalmente de la venues mesa, pero ¿importa cuando me estoy uniendo a la events ¿mesa?

Y la segunda es con el Group by Yo tengo:

Error de análisis: error de sintaxis, T_ENCAPSED_AND_WHITESPACE inesperado, esperando T_STRING o T_VARIABLE o T_NUM_STRING

Pensé que cerré todas las cadenas, así que no estoy seguro de por qué hace eso.

preguntado el 31 de diciembre de 12 a las 16:12

1 Respuestas

Falta una coma antes GROUP_CONCAT, ¡eso es todo!

Edit:

El segundo también es un error tipográfico: falta una cita en la última línea,

GROUP BY events.start_datetime) or die(mysql_error());

debiera ser

GROUP BY events.start_datetime") or die(mysql_error());

Respondido el 31 de diciembre de 12 a las 16:12

¡Gracias por eso! No sé cómo pude haberlo perdido. - pufAmuf

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.