mysql> SELECT CONCAT(artist_name, " recorded ", album_name) AS recording
-> FROM album INNER JOIN artist USING (artist_id)
-> ORDER BY recording;
上面的代码运行成功,但是我试图全面了解这些行。我想知道如果INNER JOIN使用album_id有什么区别,还是必须是artist_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,稍后可能会有一些愚蠢的问题,但我非常感谢您的帮助。
答案 0 :(得分:0)
这意味着album_id
表中不存在album/artist
。
USING
子句的使用类似于ON
子句。这用于比较两个表中存在的首选列上的两个表。
如果可以检查,两个表中都存在artist_id
,但没有album_id
。所以它给你一个错误。
答案 1 :(得分:0)
好吧,我刚刚意识到餐桌艺术家和专辑他们共享一个列artist_id,这就是为什么当他们INNER JOIN时,它必须由artist_id产生。