我正在索引MySQL数据库中的音乐下载,并且仅限于两个数据库。我决定像这样组织数据库:
数据库:
music
> artist
>> artistS
>> artistR
>> genre
> album
>> album
>> artistS
>> year
> song
>> song
>> album
>> artistS
我想知道是否有办法输入其中一个值,并从所有表格中获取所有结果(例如,我输入“Blues”,我从表格艺术家那里得到“Blues”的艺术家“流派,这位艺术家的专辑,因为艺术家有流派”Blues“,以及艺术家专辑的所有歌曲,因为他们有”蓝调“类型。
如果您需要提供信息或澄清,请说明。
答案 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'
希望这会对你有帮助..