【发布时间】:2014-06-03 11:52:42
【问题描述】:
我有一个跟踪电影和演员的数据库,包含以下表格:
Person(ID, Name)
Movie(ID, Name)
Actors(ID, PersonID, MovieID)
ID 字段都是主键,PersonID 和 MovieID 都是外键。
我想选择汤姆克鲁斯和布拉德皮特出演的所有电影。 我尝试执行以下操作:
SELECT * FROM Person, Actors
WHERE Person.ID = Actors.ActorID AND
(Person.Name= 'Tom Cruise' or Person.Name= 'Brad Pitt')
GROUP BY Actors.MovieID
HAVING COUNT(Actors.MovieID) > 1
这不起作用,因为人名不是唯一的(我无法将其更改为唯一的)。如果我有另一个叫布拉德皮特的演员,并且两个布拉德皮特在同一部电影中扮演,那么结果也会返回。
我该怎么做?
注意:我查询的演员数量可能会发生变化。我可能需要一部由 10 位演员全部出演的电影。
【问题讨论】: