SQL通过映射表加入

时间:2015-07-07 21:08:58

标签: sql

我可能已经使数据方案比我需要的更复杂但是这是当前的数据原理以及我尝试完成的内容。

Actor
id|name  |website       |...
1 |james |www.james.com |...
2 |ben   |www.ben.com   |...

Movie
id|name      |poster|runtime...
1 |titanic   |/a.jpg|98|
2 |Terminator|/b.jpg|77|
3 |MIB       |/c.jpg|89|

Character
id|name
1 |tony
2 |bilbo
3 |gandalf

ActorMovieCharacterMapping
id|movie_id|actor_id|character_id
1 | 3      |5       |3
2 | 2      |5       |2
3 | 3      |2       |6

我的目标是尽可能少地为最少数量的SQL查询获取给定影片的所有Actors的角色名称。我可以获得电影中的所有演员或电影中的角色,但不知道如何检索该电影的演员角色名称。任何帮助将不胜感激,以及更好地格式化这些表格的可能方法。

1 个答案:

答案 0 :(得分:2)

只需在映射表上进行连接:

select a.name as actor_name, c.name as character_nane
from ActorMovieCharacterMapping m
join Actor a on m.actor_id = a.id
join Movie mo on m.monie_id = mo.id
join Character c on m.character_id = c.id
where mo.id = 1