如何对多个关系进行过滤,其中一个模型不包含另一个模型*

时间:2018-05-10 19:36:36

标签: sql database

我的模型在多对多关系中看起来像这样 我正确设置了我的链接表。但我不知道如何

- &GT;获取{strong> <{1}} x

的所有Film

我需要JOINS *这样做吗?还是简单的SELECT? 非常感谢任何提示。

enter image description here

2 个答案:

答案 0 :(得分:1)

一般方法是使用not exists

select f.*
from film f
where not exists (select 1 from actor_film_mapping where film_id = f.film_id);

然而,JOIN(即LEFT JOIN)也将采用比特过滤的地方IS NULL

select f.*
from film f 
left join actor_film_mapping am on am.film_id = f.film_id
where am.film_id is null;

答案 1 :(得分:0)

我使用&lt;&gt; (不等于)WHERE条款

SELECT * FROM actor_film_mapping WHERE actor_id <>  actor_x_ID;

这将显示所有不属于Actor X的电影