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」

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

4

2 に答える 2

1

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

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

複数のテーブルを参照しているため、MySQLは列track_idがどのテーブルに存在するかを認識しません。明示的に指定するx.track_idと、列がエイリアスされたテーブルx(この場合は)にあることがわかりますalbum

また、なぜテーブルalbumを2回参照しているのですか?

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

于 2012-04-29T18:46:41.330 に答える
1

エラーは、テーブルを含めるのを忘れた可能性があります。

track_idこの場合、どのテーブルを使用するかがわからないというxbonezからの回答は、次のような別のエラーが発生します。Column 'track_id' in field list is ambiguous ...

あなたが必要かもしれないFROM album x, genre g, artist a, track t ..

于 2012-04-29T18:53:06.267 に答える