我真的不知道如何表达这句话的标题,也不知道如何搜索我的解决方案,所以我决定在这里提问。
基本上我有三个表 - events
、announcers
和 media
。媒体包含一个引用播音员的外键,每个播音员都有一个引用事件的外键。我的目标是选择来自特定事件的所有媒体。
如果我的问题重复,我深表歉意,但我无法找到搜索词来为我提供解决方案。
假设我的事件表包含以下信息:
- 名称:varchar(200)
- ID(PK):整数
我的播音员表是:
- 名称:varchar(200)
- ID(PK):整数
- event_id(FK - 事件):int
还有我的媒体表:
- media_id:varchar(32)
- ID(PK):整数
- announcer_id(FK - 播音员):int
如果事件表包含以下事件,名称:生日派对,ID:1
播音员包含:
- 名称:Speech1,ID:1,event_id:1
- 名称:Speech2,ID:2,event_id:1
媒体包含:
- media_id:(某些 ID),ID:1,anner_id:1
- media_id:(某些 ID),ID:2,anner_id:1
- media_id:(某些 ID),ID:3,anner_id:2
- media_id:(某些 ID),ID:4,anner_id:2
我想要运行的查询应返回所有媒体。
最佳答案
SELECT
--whatever attributes you want to display from e,a,m
m.*
FROM
event e
INNER JOIN
announcer a
ON
e.id = a.event_id
INNER JOIN
media m
ON
a.id = m.announcer_id
WHERE e.attribute_name = value
--(or any condition)
关于sql - 选择两层深的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55646048/