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

错误可能是您忘记包含表格。

xbonez 的回答是,它不知道从哪个表中使用track_id在这种情况下不适用,那么您将遇到另一个错误,例如Column 'track_id' in field list is ambiguous ...

你可能需要FROM album x, genre g, artist a, track t ..

于 2012-04-29T18:53:06.267 回答
1

您需要限定列名。

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

由于您引用了多个表,因此 MySQL 不知道该列track_id将存在于哪个表中。显式指定x.track_id告诉它该列在表中 aliased x,在这种情况下,album.

另外,您为什么要album两次引用该表?

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

于 2012-04-29T18:46:41.330 回答