SQL - не понятно как составить запрос

102
19 декабря 2020, 11:10

Есть таблица workers

+------+----------+-------+
| id   | name     | chief |
+------+----------+-------+
|    1 | Ivanov   |  NULL |
|    2 | Petrov   |     1 |
|    3 | Sidorova |     2 |
|    4 | Antonov  |  NULL |
+------+----------+-------+

Необходимо выбрать сотрудников, не являющихся ни чьими руководителями.

Вопрос: почему не работает запрос

SELECT name FROM workers WHERE chief = NULL;

Он выдаёт Empty set (0.00 sec).

Answer 1

Как совершенно справедливо заметил Герман Борисов, Ваш исправленный запрос вернет сотрудников, не являющихся ни чьими подчиненными.

Если Вы хотите выбрать сотрудников, не являющихся ни чьими руководителями, то Вам нужен например, такой запрос:

SELECT name FROM workers WHERE Id NOT IN (SELECT DISTINCT chief FROM workers WHERE chief IS NOT NULL)
READ ALSO
MySQL и Массивы - как с ними работать?

MySQL и Массивы - как с ними работать?

Есть задание: Дан двумерный массив [[1, a], [2, b], [3, c]]Написать запрос, создающию таблицу в БД, возвращающую данный массив запросом SELECT * FROM table_name...

114
Как удалить из arResult удалённые и неактивные товары ? Битрикс

Как удалить из arResult удалённые и неактивные товары ? Битрикс

В стандартном компоненте корзины Битрикс (bitrix:salebasket

103
Сложение массивов на php после запроса sql

Сложение массивов на php после запроса sql

Идея, которую пытаюсь реализовать: для выбранных строк в таблице определить все столбцы, в которых есть данные, и получить (собрать) строку...

108
Порядок срабатывания событий, ajax

Порядок срабатывания событий, ajax

Пытаюсь подключить шорткод только на отдельной странице, чтобы лишний код не выполнялся на всех страницах, но ajax не работаетМожете объяснить...

126