Найдите имена всех сотрудников, которые работают в ИТ-отделе

Функция агрегирования 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) сотрудников, у которых есть менеджер и работал в отделе в США.

Оцените статью
nanomode.ru
Добавить комментарий