SQL根据另一个表的行值从一个表中获取信息,反之亦然

时间:2016-02-06 05:05:31

标签: php mysql sql pdo

我正在索引MySQL数据库中的音乐下载,并且仅限于两个数据库。我决定像这样组织数据库:

数据库:

music
>  artist
>>   artistS
>>   artistR
>>   genre
>  album
>>   album
>>   artistS
>>   year
>  song
>>   song
>>   album
>>   artistS

我想知道是否有办法输入其中一个值,并从所有表格中获取所有结果(例如,我输入“Blues”,我从表格艺术家那里得到“Blues”的艺术家“流派,这位艺术家的专辑,因为艺术家有流派”Blues“,以及艺术家专辑的所有歌曲,因为他们有”蓝调“类型。

如果您需要提供信息或澄清,请说明。

1 个答案:

答案 0 :(得分:1)

将艺术家作为艺术家表中的主键,并将其作为“专辑”表中的外键,并与专辑表中的艺术家专栏相关联。与专辑表的专辑列相同,使其成为主键,并使其成为与专辑列相关联的Song表中的外键。然后在所有表中插入数据,确保在外键列中输入与其关联的主键相同的值,例如

艺术家表

Artists = ABC (primary key)
ArtsitR = XYZ
Genre = Blues
相册表

Album = PQR (Primary key)
Artists = ABC (foreign key)Same value as in table artist
Year = 1990
歌曲表中的

Song = MNO
Album = PQR  (foreign key)Same value as in table album
Artists = KLM

现在使用此查询

Select artist.Artists,artist.Genre, artist.ArtistR, artist.album,Album.Artists,Album.year,
Song.Song,Song.Artists from artist inner join album on album.Artists = artist.Artists
inner join Song on Song.Album = album.Album where artist.Genre = 'Blues'

希望这会对你有帮助..