[英]I am trying to link 4 tables together with INNER JOIN
My code looks like this 我的代码看起来像这样
CREATE TABLE Genre (
genreID INT NOT NULL DEFAULT 0,
genreName VARCHAR(20) NULL,
PRIMARY KEY (genreID));
CREATE TABLE Artists (
ArtistID INT NOT NULL DEFAULT 0,
name VARCHAR(45) NULL,
Genre_genreID INT NOT NULL,
PRIMARY KEY (ArtistID),
FOREIGN KEY (Genre_genreID)
REFERENCES Genre(genreID));
CREATE TABLE Albums (
albumsID INT NOT NULL DEFAULT 0,
name VARCHAR(45) NULL,
Artists_ArtistID INT NOT NULL,
PRIMARY KEY (albumsID),
FOREIGN KEY (Artists_ArtistID)
REFERENCES Artists(ArtistID));
CREATE TABLE Songs (
songID INT NOT NULL,
name VARCHAR(45) NULL,
length TIME NULL,
Albums_albumsID INT NOT NULL DEFAULT 0,
PRIMARY KEY (songID),
FOREIGN KEY (Albums_albumsID)
REFERENCES Albums (albumsID));
SELECT Artists.name, Genre.genreName, Songs.name
FROM Songs
INNER JOIN Genre ON Artists.ArtistID=Genre.genreID
INNER JOIN Artists ON Albums.Artists_ArtistID=Artists.ArtistID
INNER JOIN Albums ON Songs.Albums_albumID=Albums.albumsID;
Looking to try and get the name of the artists, genre and song to all match up and display. 希望尝试获得艺术家的姓名,流派和歌曲以进行匹配和展示。 Yet I get 可是我明白了
Unknown column 'Artists.ArtistID' in 'on clause'
Im fairy new to SQL and to INNER JOINS any help and explanations would be great! 对SQL和INNER JOINS来说,我是新手,任何帮助和解释都很棒!
Try this 尝试这个
SELECT Artists.name, Genre.genreName, Songs.name
FROM Songs
INNER JOIN Albums ON Songs.Albums_albumID=Albums.albumsID
INNER JOIN Artists ON Albums.Artists_ArtistID=Artists.ArtistID
INNER JOIN Genre ON Artists.ArtistID=Genre.genreID;
check the sequence and occurrence of tables in join 检查联接中表的顺序和出现情况
you are mention the Songs
table in first row joining. 您会在第一行连接中提到Songs
表。 but your joining the table of ON
function in last line only like your code, you should try this method: 但是您只在最后一行中加入ON
函数表,就像您的代码一样,您应该尝试以下方法:
SELECT
Artists.name, Genre.genreName, Songs.name
FROM Songs
INNER JOIN Albums
ON Songs.Albums_albumID=Albums.albumsID
INNER JOIN Artists
ON Albums.Artists_ArtistID=Artists.ArtistID
INNER JOIN Genre
ON Artists.ArtistID=Genre.genreID;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.