Сравнения нескольких столбцов с помощью подзапросов могут быть:
-
непарными сравнениями;
-
попарными сравнениями.
Попарные и непарные сравнения
Сравнения нескольких столбцов с помощью подзапросов могут быть непарными или попарными сравнениями. Если рассмотреть пример «Вывести сведения о сотрудниках, работающих в том же отделе и имеющих того же менеджера, что и Daniel», правильный результат получится с помощью следующего выражения:
SELECT first_name, last_name, manager_id, department_id FROM empl_demo WHERE manager_id IN (SELECT manager_id FROM empl_demo WHERE first_name = ‘Daniel’) AND department_id IN (SELECT department_id FROM empl_demo
|
В таблице EMPL_DEMO
имеется только один Даниель (Daniel Faviet), которым руководит менеджер 108 и который работает в отделе 100. Однако если подзапросы возвращают более одной строки, результат может быть неправильным. Например, если выполнить тот же запрос, но заменить «Daniel» на «John», получится неправильный результат. Это происходит из-за того, что важна комбинация параметров department_id
и manager_id
. Чтобы получить правильный результат для этого запроса, необходимо попарное сравнение.
Далее: Преимущества использования регулярных выражений