我正在尝试连接三个表:
SELECT Songs.SongId,
Artist.ArtistFName,
Artist.ArtistLName,
Album.AlbumName,
Genre.GenreName,
Songs.SongTrackNr,
Songs.SongName,
Songs.SongDuration
FROM
(((Album
INNER JOIN Songs ON Album.AlbumId = Songs.AlbumId)
INNER JOIN Ablum ON Album.ArtistId = Artist.ArtistId)
INNER JOIN Album ON Album.GenreId = Genre.GenreId);
但是我遇到了一个非唯一错误,我应该在 Album 表的什么地方放置别名?
谢谢
最佳答案
您在 FROM
子句中有 Ablum
和 Album
。我想你打算:
SELECT s.SongId, ar.ArtistFName, ar.ArtistLName, a.AlbumName, g.GenreName,
s.SongTrackNr, s.SongName, s.SongDuration
FROM Album INNER JOIN
Songs s
ON a.AlbumId = s.AlbumId INNER JOIN
Artists ar
ON a.ArtistId = ar.ArtistId INNER JOIN
Genre g
ON a.GenreId = g.GenreId;
修复是表名。此外,请注意表别名——它们使查询更易于编写和阅读。此外,FROM
子句中不需要括号。
关于mysql - 错误代码 : 1066. 不是唯一表/别名问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43783200/