Я не покупаю его. Кажется, что у этих фанатиков ООП есть машины, у которых есть бесконечная оперативная память и потрясающая производительность. Очевидно, что при использовании inifinite RAM вам не нужно беспокоиться о фрагментации ОЗУ и о влиянии производительности, которое возникает при непрерывном создании и уничтожении небольших вспомогательных классов. Перефразируя цитату из книги «Красивый код» - «Каждая проблема в информатике может быть решена с еще одним уровнем абстракции»
Используйте переключатель, если вам это нужно. Компиляторы довольно хороши для генерации кода для них.
Полагаю, вам нужен только агрегированный запрос, который JOIN
содержит все три таблицы. Этот запрос извлечет 3 верхних списка с самым высоким средним avgpoints
.
SELECT
l.l_id,
l.lists,
avg(avgpoints) avg_avgpoints
FROM
lists l
INNER JOIN combine c ON c.l_id = l.l_id
INNER JOIN movies m ON c.m_id = m.m_id
GROUP BY l.l_id, l.lists
ORDER BY 3 DESC
LIMIT 3
Если вы хотите также отображать списки, фильмы которых не могут быть найдены, вам нужно изменить ВНУТРЕННИЕ СОЕДИНЕНИЯ на ВЛЕВОЕ СОЕДИНЕНИЯ.