Оптимизация запроса - 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, поэтому не указаны соответствующие параметры.