Функция агрегирования MySQL: упражнение 2 с решением
Напишите запрос, чтобы найти имена (first_name, last_name) всех сотрудников, работающих в ИТ-отделе.
Пример таблицы: сотрудники
Пример таблицы: отделы
Код:
ВЫБЕРИТЕ first_name, last_name ИЗ сотрудников WHERE Department_id IN (SELECT Department_id FROM sizes WHERE Department_name = 'IT');
Пояснение:
Синтаксис подзапроса MySQL:
оператор сравнения операнда IN (подзапрос) оператор сравнения операнда SOME (подзапрос)
Где оператор сравнения — один из этих операторов
=> =! =
, а оператор 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’:
Предыдущий: Напишите запрос, чтобы найти имя (имя, фамилия) и зарплату сотрудников у которых зарплата выше, чем у сотрудника, у которого last_name = ‘Bull’.
Далее: Напишите запрос, чтобы найти имена (first_name, last_name) сотрудников, у которых есть менеджер и работал в отделе в США.