Подзапрос MySQL: упражнение 3 с решением
Напишите запрос, чтобы найти имена (first_name, last_name) сотрудников, у которых есть менеджер и которые работали в отделе в США.
Пример таблицы: сотрудники
Пример таблица: отделы
Пример таблицы: местоположения
Код:
ВЫБРАТЬ first_name, last_name ИЗ сотрудников WHERE manager_id в (выберите идентификатор сотрудника ИЗ сотрудников, ГДЕ Department_id IN (ВЫБЕРИТЕ идентификатор отдела из отделов WHERE location_id IN (выберите location_id из местоположений, где country_id = 'US')));
Пояснение :
Синтаксис подзапроса MySQL:
оператор сравнения операнда IN (подзапрос) оператор сравнения операнда SOME (подзапрос)
Где оператор сравнения — один из этих операторов
=> =! =
a Оператор nd IN проверяет, находится ли значение в наборе значений.
Например:
mysql> SELECT 2 IN (0,3, 5,7); -> 0mysql> ВЫБЕРИТЕ 'wefwf' IN ('wee', 'wefwf', 'weg'); -> 1
При использовании с подзапросом слово IN является псевдонимом для = ANY. Таким образом, эти два оператора одинаковы:
SELECT s1 FROM t1 WHERE s1 = ANY (SELECT s1 FROM t2); SELECT s1 FROM t1 WHERE s1 IN (SELECT s1 FROM t2 );
IN и = ANY не являются синонимами при использовании со списком выражений. IN может принимать список выражений, но = ANY не может.
Редактор кода MySQL:
Структура базы данных ‘hr’:
Предыдущий: Напишите запрос, чтобы найти имена (first_name, last_name) всех сотрудников, которые работают в ИТ-отдел.
Далее: Напишите запрос, чтобы найти имена (first_name, last_name) сотрудников, которые являются менеджерами.