2012-03-03 8 views
0

私は、MySQLデータベース用にいくつかのSQLを書いています。このSQLには何がありますか?

SELECT U.Id, U.Name, U.Surname 
    FROM match M 
INNER JOIN created_by C 
    ON C.MatchId = M.Id 
INNER JOIN user U 
    ON U.Id = C.UserId 
WHERE M.Id = 3 

それは間違っていないようですので、私はおかしくなりそうだが、インタプリタは、ここ'match M INNER JOIN created_by C ON C.MatchId=M.Id INNER JOIN user U O'近くに構文エラーがあると言います。

ありがとうございました。

+0

それであるテーブル.. [原因MySQLでのテーブルやカラム名として予約語を使用する構文エラー]の –

+0

が重複する可能性(http://stackoverflow.com/questions/23446377をお試しください/ as-a-reserved-as-a-table-or-column-name-in-mysqlのような構文エラー –

答えて

8

MATCHは、MySQL reserved keywordです。カラム名またはテーブル名として使用する場合はバッククォートで囲みます。

SELECT U.Id, U.Name, U.Surname 
    FROM `match` M 
3

私は user & matchは予約キーワードだと思います。あなたはそれをエスケープする必要があります。次のクエリ

SELECT U.Id, U.Name, U.Surname 
    FROM `match` M 
INNER JOIN `created_by` C 
    ON C.MatchId = M.Id 
INNER JOIN `user` U 
    ON U.Id = C.UserId 
WHERE M.Id = 3 
関連する問題