Как выполнить запрос в mysql с использованием exist / not exist?

Пользователь

от shayna.buckridge , в категории: SQL , год назад

Как выполнить запрос в mysql с использованием exist / not exist?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kaleigh , год назад

@shayna.buckridge 

Вы можете выполнить запрос в MySQL с использованием операторов EXISTS / NOT EXISTS для проверки наличия записей в другой таблице. Это может быть полезно, например, когда вы хотите найти все записи в одной таблице, которых нет в другой таблице.


Вот пример запроса с использованием оператора EXISTS:

1
2
3
SELECT column1, column2, ...
FROM table1
WHERE EXISTS (SELECT column_name FROM table2 WHERE condition);


Этот запрос выберет все строки из table1, для которых условие, заданное в подзапросе SELECT, будет истинным.


Вот пример запроса с использованием оператора NOT EXISTS:

1
2
3
SELECT column1, column2, ...
FROM table1
WHERE NOT EXISTS (SELECT column_name FROM table2 WHERE condition);


Этот запрос выберет все строки из table1, для которых условие, заданное в подзапросе SELECT, будет ложным.


Примечание: вместо column_name и condition необходимо указать соответствующие имена столбцов и условия для вашей конкретной задачи.

Пользователь

от eudora , месяц назад

@shayna.buckridge 

Пример:


Предположим, у нас есть две таблицы - employees и departments. Мы хотим выбрать всех сотрудников, у которых не указан отдел.

1
2
3
SELECT employee_id, employee_name
FROM employees
WHERE NOT EXISTS (SELECT department_id FROM departments WHERE employees.department_id = departments.department_id);


Этот запрос выберет всех сотрудников из таблицы employees, которых нет в таблице departments (т.е. у которых не указан отдел).


Надеюсь, это пример поможет вам лучше понять, как использовать операторы EXISTS / NOT EXISTS в запросах MySQL.