mysql> SELECT CONCAT(artist_name, " recorded ", album_name) AS recording -> FROM album INNER JOIN artist USING (artist_id) -> ORDER BY recording;
上面的代码运行得很成功,但我正在努力全面理解代码行。我想知道如果内部连接使用相册\u id有什么区别,或者它必须是艺术家\u id。所以我尝试了以下方法: -> FROM album INNER JOIN artist USING (album_id);
以及 FROM artist INNER JOIN album USING (album_id);
然后我得到了错误。 ERROR 1054 (42S22): Unknown column 'album_id' in 'from clause'
还有一个问题:“from子句”是什么?
我刚开始玩mysql,以后可能会有愚蠢的问题,但我真的很感谢你的帮助。
2条答案
按热度按时间lkaoscv71#
这意味着
album_id
中不存在album/artist
table。使用
USING
子句类似于ON
条款。这用于比较两个表中存在的首选列上的两个表。如果你能查到,
artist_id
两个表中都有,但没有album_id
. 所以它给了你一个错误。lvjbypge2#
好吧,我刚刚意识到表艺术家和专辑他们共享一个列,即艺术家id,这就是为什么当他们内部连接,它必须由艺术家id。