Я понимаю, что это, вероятно, очень просто. Просто опоздать и нужно объяснение.SQL найти одно значение из дубликатов с определенным условием
У меня есть таблица:
mysql> SELECT * FROM employee_expert;
+------+---------+
| enum | package |
+------+---------+
| E246 | Excel |
| E246 | MySQL |
| E246 | Python |
| E246 | Word |
| E403 | Java |
| E403 | MySQL |
| E892 | Excel |
| E892 | PHP |
| E892 | Python |
+------+---------+
9 rows in set (0.00 sec)
И мне нужно найти enum
кортежа НЕ Python Результат должен быть E403
, так как его единственный не с Python.
Пробовал
mysql> SELECT enum FROM employee_expert WHERE package != "Python" GROUP BY enum;
+------+
| enum |
+------+
| E246 |
| E403 |
| E892 |
+------+
3 rows in set (0.00 sec)
Но, очевидно, он просто вернул все enum
сек ...
ДА. Большое спасибо. Пробовал NOT IN, но не с подзапросом. –
(На правильно проиндексированной таблице это самый медленный из 3 представленных решений) – Strawberry