Оптимизация запроса - 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
, поэтому не указаны соответствующие параметры.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д