Ниже представлен мой код. Он возвращает подсчет каждой категории, в которой находился человек для фильма. Он возвращает результат, но я бы хотел, чтобы он перечислял каждую категорию, включая те, у которых 0 счетчиков. Я пробовал каждую комбинацию LEFT JOIN, OUTER JOIN и т. Д., И это все еще не работает. Любая помощь будет оценена!Включая 0 Включить подсчет при фильтрации по SQL
SELECT c.name, COUNT(f.title) FROM category c
LEFT JOIN film_category fc ON c.category_id = fc.category_id
INNER JOIN film f ON fc.film_id = f.film_id
INNER JOIN film_actor fa ON f.film_id = fa.film_id
INNER JOIN actor a ON fa.actor_id = a.actor_id
WHERE a.first_name = 'Jack' AND a.last_name = 'Daniel'
GROUP BY c.name ASC;
Возможно, '... sum (if (name is null, 1, 1)) ...' вместо count может работать. – geoB
Я знаю, что ваша настройка схемы и запрос кажутся очень сложными, но это в основном та же проблема. Любой, кто хочет выбрать категории с 0 элементами в нем, столкнулся бы с SQL в типичной модели ER. Так что ответ есть http://stackoverflow.com/questions/12177444/sql-query-to-get-empty-categories-too Я считаю, что вам нужно изменить свой первый INNER JOIN на LEFT JOIN, но это очень много настроить и проверить для меня. – braks
Измените все 'внутренние соединения' на' left joins' и переместите критерии 'where' в соединения ... – sgeddes