У меня есть следующие 2 таблицы:
create table Director (
id_director int,
name varchar(255),
primary key (id_director)
);
create table Movies (
id_movie int,
id_director int,
title varchar(255),
year int,
primary key (id_movie),
foreign key (id_director) references Director (id_director)
);
Некоторые данные уже добавлены в эти таблицы. Представьте, что данные:
Table Director
id_director name
-------------------------
1 Charles
2 Jack
3 Katia
4 David
Table Movies
id_movie id_director title year
------------------------------------------------
1 2 title1 1999
2 1 title2 2011
3 1 title3 2019
4 3 title4 2019
5 4 title5 1968
6 3 title6 2020
7 2 title7 1977
8 4 title8 2004
9 1 title9 2020
Я хочу выполнить предложение SELECT
, чтобы отфильтровать директоров, что это первый mov ie от 2019. Обратите внимание на пример, что только режиссер с id_director = 3
отвечает требованию, которое сняло 2 фильма, один на 2019 год, а другой на 2020 год.
Как я могу сделать это?
Я хотел бы получить вывод:
id_director name
------------------------------
3 Katia
Я пробовал это, но это явно неправильно, потому что некоторые directors
, которые снимали фильмы до 2019 года, также сделали фильмы после 2019 года.
select director.id_director, director.name from director, movies
where director.id_director = movie.id_director and year = 2019
group by (name);
Я использую MySQL и полагаю, что могу сделать это с помощью подзапроса IN / NOT IN (но как)?