查询从其他表中获取包含完整信息的10首曲目

时间:2018-06-03 14:33:06

标签: php mysql

我有3张桌子 歌曲表

enter image description here

专辑表

enter image description here

艺术家表 enter image description here

我希望从桌面歌曲中获得10首最新歌曲,其中包括完整信息,包括专辑名称,专辑ID,专辑封面,艺术家姓名(在某些情况下为多位艺术家),艺术家ID,...每首歌曲。我使用此查询但它不起作用

SELECT song.SID, artist.NAME, song.COVER, song.TITLE, album.COVER AS ACOVER, album.TITLE AS ATITLE, album.AID 
FROM song
INNER JOIN album ON album.SONG LIKE CONCAT('%,',song.ID,',%') 
INNER JOIN artist ON song.ARTIST LIKE CONCAT('%,',artist.ID,',%') 
ORDER BY song.ID DESC

这里有什么问题?

1 个答案:

答案 0 :(得分:1)

正如@Tim Biegeleisen所提到的,我建议你在开始之前规范化你的数据。

我会创建两个新的关系表:

AlbumxSong with fields:
AID
SID

ArtistxSong with fields:
SIID
SID

然后您不需要ARTIST表中的Song字段。与SONG表中的Album字段相同。您可以在关系表中获得该信息。

我希望有所帮助。