我想查询我的数据库以显示哪些音乐家在给定专辑中进行了合作。表格的排列方式如下(并非所有歌曲都在专辑中):
专辑
专辑ID
ALBUM_SONG
专辑ID
歌曲ID
歌曲
歌曲ID
SONG_INSTRUMENT
歌曲ID
音乐家ID
音乐家
音乐家ID
显然它们还有其他属性,但这些是链接属性。我意识到从音乐家到专辑有很多步骤。是否可以在数据库中查询“列出在专辑上合作的所有音乐家”?
最佳答案
当然,您只需通过一些表加入即可。
SELECT DISTINCT mus.musicianID
FROM album al
INNER JOIN album_song al_s ON al.albumID = al_s.albumID
INNER JOIN song_instrument s_i ON al_s.songID = s_i.songID
INNER JOIN musician mus ON s_i.musicianID = mus.musicianID
WHERE al.albumID = ?;
关于MySQL - 跨不直接链接的表查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25515168/