Mysql 如何使用AND条件选择多对多关系中的记录

Mysql 如何使用AND条件选择多对多关系中的记录,mysql,sql,Mysql,Sql,我有一个跟踪电影和演员的数据库,包括以下表格: 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(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名演员的电影,所有演员都在其中演出。

在表之间进行内部连接,如下所示

SELECT m.Name as MovieName 
FROM Movie m
inner join Actors a
on m.ID = a.MovieID
inner join Person p
on p.ID = a.ActorID 
and p.Name in ('Tom Cruise','Brad Pitt')

这并不是说所有的演员都要在电影中出演,只有一个。我需要所有的。