Я запускаю соединение на двух таблицах, но у меня возникли некоторые проблемы.
Интересующие таблицы: «фото», «голосование», «неделя»
Я пытаюсь выполнить запрос, который выводит список фотографий, включенных в него, общее количество голосов за активную "неделю".
Таблица 'голосования' состоит из следующих внешних ключей: photo_id, week_id, user_id. Это позволяет мне определить, в какую «неделю» было отдано голосование. Кроме того, представьте, что неделя - это сущность, а не таймфрейм… это просто запись в таблице «недели».
Это то, что я имею до сих пор:
SELECT *, COUNT(*) as `weekly_votes`
FROM (`photo`)
JOIN `vote` ON `vote`.`photo_id` = `photo`.`id`
WHERE `vote`.`week_id` = '6'
GROUP BY `photo`.`id`
Проблема в том, что при этом будет выведен список фотографий, у которых есть голоса в таблице голосов за указанную неделю, но НЕТ фотографий не возвращается, если на этой неделе не было подано ни одного голоса.
В основном:
WHERE `vote`.`week_id` = '6'
нужно применять только к материалам в операторе объединения, а не препятствовать ограничению количества возвращаемых фотографий. Я знаю, что, по крайней мере, мне нужно использовать какое-то OUTER соединение, но я думаю, что предложение WHERE по-прежнему будет препятствовать его работе.
Надеюсь, мой вопрос имеет смысл ...