mysql - 错误代码 : 1066. 不是唯一表/别名问题

标签 mysql sql

我正在尝试连接三个表:

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 子句中有 AblumAlbum。我想你打算:

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/

相关文章:

php - Mysql insert if not exists without unique constraint(不想依赖回滚错误)(PHP + PDO)

mysql - 我应该使用什么列类型/长度将 Bcrypt 散列密码存储在数据库中?

mysql - 如何每天复制并清空MySQL表?

SQL选择具有可互换值的两列的唯一组合

php - MySQL中的字符集;不能插入特殊字符,为什么?

c# - Dapper 在 ID 列上返回 SQL 转换错误

PHP数据库从数据库中查询外键数据

MySQL:如何计算特定半径(经度/纬度)内的中位数

mysql - 从 MySQL 数据库中删除 blob

php - 停止 MySQL 重新计算以前的行