@汤姆格林的解决方案是非常接近......除了需要对“ DISTINCT“在他的查询中。
然而,不同的演员,你已经有一个演员表,查询直接从,这应该是唯一的演员,也无论他们入选了这部电影的女演员。
但是,如果你想知道不同的演员/女演员与其他人在同一MOVIE中,我实际上会将您的数据库结构调整为更灵活的结构,通过使用“桥接”或“链接”表,允许尽可能多的“星星”...提供1:许多关系
Table MOVIE:
id_movie | name_movie | star1 | star2 | star3 | runtime
Table MovieActor:
id_movieactor | id_movie | id_actor (star)
Table ACTOR:
id_actor | name | sex | image
这里填充MovieActor表,你能...
insert into MovieActor (id_movie, id_actor)
select id_movie, star1 as id_actor
from movie
where star1 > 0
union
select id_movie, star2 as id_actor
from movie
where star2 > 0
union
select id_movie, star3 as id_actor
from movie
where star3 > 0
这样,每部电影的星星数量都是无限的,但可以有至少1个,而不会浪费其他人的空间......然后,在未来,您希望通过添加可能的方式来调整查询4星电影,有多少查询将被你...调整
总之,一旦做到这一点,您可以查询一样简单
select distinct ma.id_actor, actor.*
from MovieActor ma join Actor on ma.id_actor = actor.id_actor
如果你有类型的查询的其他一些例子你可能会摆脱你的数据库,我可以很容易地提供补充查询...
谢谢!对我来说似乎很简单! :)我使用了你的查询,但它只列出了像Morgan Freeman这样的演员M | 123.jpg ...我还想要计算他的名字出现在star1 star2和star3的总和上的次数......这是可能的队友吗? –