出于某种原因,我无法让此连接工作。我正在查找的结果为“歌曲标题”、“流行者”、“录音标题”、“录制者”。
这是我的查询:
SELECT Song.title AS `Song Title`,
PerfArtist.name AS `Made Popular By`,
Recording.title AS `Recording Title`,
PerfArtist.name AS `Recorded By`
FROM PerfArtist_Recording
INNER JOIN Recording ON PerfArtist_Recording.Recording_id = Recording.id
INNER JOIN Song_Recording ON Song_Recording.Recording_id = Recording.id
INNER JOIN Song ON Song_Recording.Song_id = Song.id,
INNER JOIN PerfArtist ON MadePopularBy.PerfArtist_id = PerfArtist_id
INNER JOIN PerfArtist ON PerfArtist_Recording.PerfArtist_id = PerfArtist.id
我得到的错误是:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN PerfArtist ON MadePopularBy.PerfArtist_id = PerfArtist_id
INNER ' at line 9
任何帮助将不胜感激。
最佳答案
SELECT Song.title AS 'Song Title',
PerfArtist1.`name` AS 'Made Popular By',
Recording.title AS 'Recording Title',
PerfArtist2.`name` AS 'Recorded By'
FROM
PerfArtist_Recording
INNER JOIN
Recording ON PerfArtist_Recording.Recording_id = Recording.id
INNER JOIN
Song_Recording ON Song_Recording.Recording_id = Recording.id
INNER JOIN
Song ON Song_Recording.Song_id = Song.id
INNER JOIN
PerfArtist perfArtist1 ON MadePopularBy.PerfArtist_id = perfArtist1.PerfArtist_id
INNER JOIN
PerfArtist perfArtist2 ON PerfArtist_Recording.PerfArtist_id = perfArtist2.PerfArtist.id
删除了一个杂散的冒号,用单引号替换了反引号,以澄清有关列名和别名的信息。
添加了 PerfArtist 的别名
关于mysql - 对两列使用相同的 id 连接时出错 - MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20025854/