简体   繁体   English

从两个表的内部联接中进行SQL选择

[英]SQL SELECT FROM TWO TABLES INNER JOIN

I am trying select from my Album and ArtistBand Table and display the Name and Bandname in alphabetical order. 我正在尝试从“ Album和“ ArtistBand表中进行选择, Bandname字母顺序显示“ Name和“ Bandname When in try to use the select statement below it shows up with all the albums on each band. 尝试使用下面的select语句时,它会显示在每个乐队的所有专辑中。 Any help would be appreciated project for school. 任何帮助将是赞赏学校的项目。

CREATE TABLE ArtistBand 
(
    ArtistID INT AUTO_INCREMENT PRIMARY KEY,
    BandName VARCHAR(255) NOT NULL,
    NameOfMembers VARCHAR(255),
    NumberOfMembers INT
);

CREATE TABLE Genre
(
    GenreID INT AUTO_INCREMENT PRIMARY KEY,
    GenreType VARCHAR(255) NOT NULL
);

CREATE TABLE Album 
(
    AlbumID INT AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR (255) NOT NULL,
    ReleaseDate DATE NOT NULL,
    Producers VARCHAR (255),
    ArtistID INT,
    GenreID INT,
    FOREIGN KEY(ArtistID) REFERENCES ArtistBand(ArtistID),
    FOREIGN KEY (GenreID) REFERENCES Genre (GenreID)
);

CREATE TABLE LookUp
(
    AlbumID INT,
    GenreID INT,
    FOREIGN KEY (AlbumID) REFERENCES Album (AlbumID),
    FOREIGN KEY (GenreID) REFERENCES Genre (GenreID)
);

INSERT INTO ArtistBand 
VALUES
    (NULL,'ACDC','BrianJohnson',4),
    (NULL,'Metallica','JamesHeitfield',4),
    (NULL,'TheBeatles','JohnLennon',4),
    (NULL,'JayZ','ShawnCarter',1),
    (NULL,'DangerMouse','BrianBurton',1);

INSERT INTO Album 
VALUES
    (NULL,'BackInBlack','1980-01-01',NULL,NULL,NULL),
    (NULL,'TheBlackAlbum','1991-01-01',NULL,NULL,NULL),
    (NULL,'WhiteAlbum','1968-01-01',NULL,NULL,NULL),
    (NULL,'TheBlackAlbum','2003-01-01',NULL,NULL,NULL),
    (NULL,'TheGreyAlbum','2004-01-01',NULL,NULL,NULL);

INSERT INTO Genre 
VALUES
    (NULL,'HeavyMetal'),
    (NULL,'HeavyMetal'),
    (NULL,'Pop'),
    (NULL,'HipHop'),
    (NULL,'HipHop');

SELECT   
    ArtistBand.BandName, Album.Name
FROM     
    ArtistBand
JOIN     
    Album 
ORDER BY 
    ArtistBand.BandName;

You need to add condition on your join, that the ArtistID should be the same in both tables. 您需要在连接上添加条件,即两个表中的ArtistID应该相同。 So your query will look like below: 因此,您的查询将如下所示:

SELECT   ArtistBand.BandName, Album.Name
FROM     ArtistBand
JOIN     Album ON ArtistBand.ArtistID = Album.ArtistID
ORDER BY ArtistBand.BandName;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM