2012-04-29 9 views
0
$sql = 'SELECT track_id, track_title, track_num, al.album_name, g.genre_name, a.artist_name, length, track_rating '. 
     'FROM album x, genre g, artist a, album al '. 
     'WHERE x.genre = g.genre_id AND x.artist = a.artist_id AND x.album = al.album_id'; 

エラー:不明な列「track_id」「フィールドリスト」でMySQLクエリエラー - それが何であるか把握できないのですか?私が手

私が間違って何をしているのですか?

+2

が必要になる場合があります、それはこの場合には適用されませんtrack_idを使用するテーブルから知っていない、あなたはColumn 'track_id' in field list is ambiguous ...

のような別のエラーを持っているだろうと

xbonezからの回答、あなたを編集してください関連するすべてのテーブルに 'describe

'の出力を含めるよう投稿してください。 –

答えて

1

列名を修飾する必要があります。

$sql = 'SELECT x.track_id, x.track_title, x.track_num, al.album_name,... 

複数のテーブルを参照しているため、MySQLは列track_idが中に存在することになるテーブルを知りません。明示的にx.track_idを指定すると、列がテーブルにこの場合、albumで、xを別名であることを伝えます。

さらに、テーブルalbumを2回参照していますか?

'FROM album x, genre g, artist a, album al '.

+0

助けてくれませんでした - 'フィールドリスト'の 'x.track_id'列が不明 – antonpug

+0

'album_'テーブルに' track_id'という列がありますか?スペルの不一致を確認してください。 – xbonez

+2

確かに、その列が複数の表に存在する場合、欠落している列ではなくあいまいな列について文句を言いますか? – DCoder

1

エラーは、テーブルを含めるのを忘れていることかもしれません。あなたはFROM album x, genre g, artist a, track t ..

関連する問題