这个GROUP BY查询有什么问题?

时间:2011-09-04 18:34:51

标签: php mysql

我似乎无法绕过这个;我读过的所有资源都表明这应该没问题:

'SELECT e.ID, e.EVENT_NAME, e.EVENT_DATE, v.VENUE_NAME, l.LOCATION, GROUP_CONCAT(ms.MUSIC_STYLE_NAME) as `Styles`'.
'FROM events AS e'.
'INNER JOIN venues as v ON e.VENUE_LOCATION = v.ID'.
'INNER JOIN locations AS l ON e.VENUE_LOCATION = l.ID'.
'INNER JOIN event_music_styles AS ems ON e.ID = ems.EVENT_ID'.
'INNER JOIN music_styles AS ms ON ms.ID = ems.MUSIC_STYLE_ID'.
'GROUP BY e.ID';

...然而

  

查询无效:您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以获得正确的语法   在第1行'BY e.ID'附近使用

3 个答案:

答案 0 :(得分:4)

似乎你错过了空间。试试

'SELECT e.ID, e.EVENT_NAME, e.EVENT_DATE, v.VENUE_NAME, l.LOCATION, GROUP_CONCAT(ms.MUSIC_STYLE_NAME) as `Styles`'.
     ' FROM events AS e'.
     ' INNER JOIN venues as v ON e.VENUE_LOCATION = v.ID'.
     ' INNER JOIN locations AS l ON e.VENUE_LOCATION = l.ID'.
     ' INNER JOIN event_music_styles AS ems ON e.ID = ems.EVENT_ID'.
     ' INNER JOIN music_styles AS ms ON ms.ID = ems.MUSIC_STYLE_ID'.
     ' GROUP BY e.ID';

答案 1 :(得分:2)

我不确定它是什么语言,但似乎

'INNER JOIN music_styles AS ms ON ms.ID = ems.MUSIC_STYLE_ID'. 'GROUP BY e.ID'

会导致

'INNER JOIN music_styles AS ms ON ms.ID = ems.MUSIC_STYLE_IDGROUP BY e.ID'

因此无法识别'group'关键字。

答案 2 :(得分:1)

好吧,试试这个

SELECT e.ID,
       e.EVENT_NAME,
       e.EVENT_DATE,
       v.VENUE_NAME,
       l.LOCATION,
       GROUP_CONCAT(ms.MUSIC_STYLE_NAME) as `Styles`
       FROM events as e
         INNER JOIN venues as v ON e.VENUE_LOCATION = v.ID
         INNER JOIN locations as l ON e.VENUE_LOCATION = l.ID
         INNER JOIN event_music_styles as ems ON e.ID = ems.EVENT_ID
         INNER JOIN music_styles as ms ON ms.ID = ems.MUSIC_STYLE_ID
         GROUP BY e.ID;