Можно ли как-нибудь повторно использовать ссылку на таблицу, к которой мы присоединились в подзапросе?
У меня есть три таблицы:
- task_categories, информация о категориях задач
- task_priorities, приоритеты, связанные с категориями задач
- task_links, URL-ссылки для каждой отдельной задачи.
Пожалуйста, проверьте эту скрипту SQL.
CREATE TABLE task_categories (
task_category_id int,
code varchar(255),
name varchar(255)
);
CREATE TABLE task_priorities (
priority_id int,
task_category_id int,
priority int
);
CREATE TABLE task_links (
task_links_id int,
task_category_id int,
title varchar(255),
link varchar(255),
position int
);
Нам нужно объединить все эти таблицы, если нам нужны ссылки с задачами, имеющими высокий приоритет.Примерно так
select * from task_links t_links
inner join task t on t_links.task_id = t.task_id
inner join task_priorities t_priorities on t.task_id = t_priorities.task_id
where t.code in ('TASK_P2', 'TASK_P3') and
t_priorities.priority = (select min(priority) from task_priorities tp
inner join task t on tp.task_id = t.task_id
where t.code in('TASK_P2', 'TASK_P3'))
order by t_links.position;
Есть ли способ оптимизировать этот запрос?Этот запрос присоединился к таблице дважды, я думаю, что должен быть лучший способ написать этот запрос.