Оптимизация запроса - MySQL (220367)
Формулировка задачи:
Здравствуйте!
Столкнулся с такой проблемой, мне нужно выполнить запрос вида:
Соответственно хочется избежать дублирования выборки Может Вы знаете, как можно его оптимизировать?
SELECT `id` FROM `emps` WHERE `parent_id` IN (SELECT `emp_id` FROM x WHERE y) OR `id` IN (SELECT `emp_id` FROM x WHERE y)
SELECT `emp_id` FROM x WHERE y
Решение задачи: «Оптимизация запроса»
textual
Листинг программы
SELECT * FROM emps E INNER JOIN (SELECT emp_id FROM x WHERE y) X ON (E.parent_id = X.emp_id) OR (E.id = X.emp_id)
Объяснение кода листинга программы
- Создаётся запрос на выборку данных из таблицы
emps
с использованием оператораSELECT *
. - В скобках указывается подзапрос, который будет выполнен в рамках этого запроса.
- В подзапросе используется оператор
SELECT emp_id FROM x WHERE y
. - В запросе указывается условие для объединения таблиц
emps
иx
с помощью оператораINNER JOIN
. - В качестве условия объединения используются два выражения:
(E.parent_id = X.emp_id)
и(E.id = X.emp_id)
. - Запрос не содержит операторов
GROUP BY
,ORDER BY
,LIMIT
,OFFSET
, поэтому не указаны соответствующие параметры. - Запрос не содержит таблицы
FROM
после оператораFROM
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
IN
,ON DUPLICATE KEY UPDATE
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
UPDATE
,DELETE
,INSERT
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
MATCH
,INNER JOIN
,LEFT JOIN
,RIGHT JOIN
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
JOIN
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
SET
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
AND
,OR
,NOT
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
INNER JOIN
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
WHERE
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
GROUP BY
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
ORDER BY
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
LIMIT
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
OFFSET
, поэтому не указаны соответствующие параметры. - Запрос не содержит операторов
FOR UPDATE
, поэтому не указаны соответствующие параметры.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д