Моя задача: «Подсчитать количество фильмов за каждый год, в которых снимались только женщины-актеры».
Схема таблицы следующая:
-------------------- ----------------------- ----------------------
| Movie | | Person | | Cast |
-------------------- ------------------------ ----------------------
| MID | year | | PID | Gender | | MID | PID |
-------------------- ------------------------ ----------------------
Я написал следующее MySQL Запрос:
SELECT m.year, COUNT(m.MID) AS Movies_Female FROM Movie m
WHERE m.MID IN ( SELECT Q.MID FROM ( SELECT m_c.MID, COUNT(m_c.PID) AS No_Actors FROM M_Cast m_c GROUP BY m_c.MID) Q
WHERE Q.No_Actors = ( SELECT COUNT(m__c.PID) FROM M_Cast m__c JOIN PERSON p
ON TRIM(p.PID) = TRIM(m__c.PID)
WHERE m__c.MID = Q.MID AND TRIM(p.Gender) = 'Female')) GROUP BY m.year
Но и я получаю результат как:
year Movies_Female
0 1939 1
1 1999 1
2 2000 1
3 2009 1
4 2012 1
5 2018 1
Но когда я вручную проверяю 2009 и 2012 год, у меня нет Mov ie где есть только актрисы. Пожалуйста, определите, где мой запрос идет не так?