Возможно, вы случайно наткнулись на хороший тестовый вопрос SQL.
- У меня есть таблица, скажем, ~ 100 имен пользователей.
- У меня есть набор из 10 возможных имен пользователей {aname, bname, cname, dname, ...}
If I do:
SELECT user.username FROM user WHERE user.username IN ('aname', 'bname', 'cname',...);
Я получаю список выбранных имен пользователей, за вычетом тех, которые не найдены в таблице, грандиозно.
Что мне действительно нужно, так это список тех, которые НЕ найдены в таблице.
Если бы список предложений WHERE...IN
был таблицей, я бы просто LEFT JOIN
добавил его в пользовательскую таблицу и отфильтровал по NULLs
.
Есть ли способ сделать это, не создавая временную таблицу и не присоединяя ее к пользовательской таблице? Я думаю, что-то вроде левого соединения пользовательской таблицы с предложением WHERE...IN
?
Я никогда этого не делал и не видел, но, возможно, он существует.