MySQL - 跨不直接链接的表查询结果

标签 mysql join

我想查询我的数据库以显示哪些音乐家在给定专辑中进行了合作。表格的排列方式如下(并非所有歌曲都在专辑中):

专辑

专辑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/

相关文章:

sql - PostgreSQL为所有用户获取最新的行/事件

mysql - 求助!如何创建一个新列来显示两个不同时期之间的持续时间

PHP - 字符串中的语句

java - 在 hibernate 状态下可连接多对多

php - 加入返回空列?

sql-server - 如何加速简单连接

php - PDO "Invalid parameter number: parameter was not defined"但它是

php - 最简单、最快的模板方式(可能是 PDF)

c++ - 如何使用 xdevapi 通过 C++ 代码登录 MySQL?

python - 如何基于包含值作为列表的列连接数据框