0

私はこのクエリを取ろうとしました:

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

これはうまく動作し、私はこれを作りました:

$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());

これにより、2つのエラーが発生します。

まず、Group Concat を使用します。

SQL 構文にエラーがあります。「GROUP_CONCAT(music_styles.MUSIC_STYLE_NAME) AS MUSIC_STYLE_NAME FROM会場IN」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

主にテーブルからデータを取得していることは理解していvenuesますが、テーブルに参加するときは問題になりeventsますか?

そして2番目はGroup by私が持っているものです:

解析エラー: 構文エラー、予期しない T_ENCAPSED_AND_WHITESPACE、T_STRING または T_VARIABLE または T_NUM_STRING が必要です

すべての文字列を閉じたと思ったので、なぜそうなるのかわかりません。

4

1 に答える 1

4

の前にコンマがありませGROUP_CONCATん。それだけです。

編集:

2 つ目もタイプミスです。最後の行に引用符がありません。

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

する必要があります

GROUP BY events.start_datetime") or die(mysql_error());
于 2012-12-31T16:05:52.563 に答える