SQL. Одинаковые результаты для IN и NOT IN

184
06 марта 2019, 22:00

Объясните мне дураку, какого Шредингера тут происходит.

SELECT num, 
CASE 
    WHEN num NOT IN (SELECT P FROM BST) THEN 'NOT in P'
    WHEN num IN (SELECT P FROM BST) THEN 'in P'
    WHEN num NOT IN (SELECT N FROM BST) THEN 'NOT in N'
    WHEN num IN (SELECT N FROM BST) THEN 'in N'
    ELSE 'lalala'
END
FROM (
    SELECT num
    FROM(
        (SELECT DISTINCT N as num FROM BST)
        UNION
        (SELECT DISTINCT P as num FROM BST)
        )    as nums
    WHERE num is not NULL
    ORDER BY num ASC
    ) as tab1
LIMIT 1;

Вывод:

1 in N

Если написать через конструкцию if для каждого из возможных вариантов, то он пишет мне:

1 in P NOT in P In N In N

Получается что элемент одновременно находится в P и не находится в P.

Что я делаю не так?

P.S. Таблица BST содержит:

N | Integer
P | Integer 

Таблица-подзапрос в FROM содержит неповторяющиеся элементы из обоих столбцах таблицы BST

Пытаюсь решить так

READ ALSO
Перехват событий консоли

Перехват событий консоли

Всем привет,как мне перехватить события консоли вида info,log,warn,error вот таким способом

212
Есть форма. Как сделать перевод каретки с одного инпута на другой, если выполнилось определенное условие? [закрыт]

Есть форма. Как сделать перевод каретки с одного инпута на другой, если выполнилось определенное условие? [закрыт]

Как сделать так, чтобы при введении 2 чисел в <input id = "h"> каретка перемещалась на следующий инпут <input id = "m">?

172
Добавление иконки в input

Добавление иконки в input

Есть разметка:

177