Я пытаюсь оптимизировать запрос sql и хочу посмотреть, как можно избежать подзапросов при повторном соединении с полученной таблицей. У меня есть следующий запрос из базы проката DVD, предоставленный postgresql, и я присоединился к трем таблицам с целью получения категории фильма. Я знаю, что могу использовать CTE или временную таблицу, но мне было интересно, есть ли более короткий путь к достижению sh того, что ниже:
--------get the category of a film
--------link film table to category id table with film id
--------then link resulting table to the category name table with category_id
SELECT
t1.title,
t1.film_id,
t1.category_id,
c.name
FROM
(
SELECT
f.title,
f.film_id,
fc.category_id
FROM
film as f
left join film_category as fc on f.film_id = fc.film_id
) as T1 left join category as c on t1.category_id = c.category_id
ORDER by title