【发布时间】:2017-01-31 18:41:54
【问题描述】:
可能无意中发现了一个很好的 SQL 测试题。
- 我有一张表,假设有大约 100 个用户名。
- 我有一组 10 个可能的用户名 { aname, bname, cname, dname, ... }
如果我这样做:
SELECT user.username FROM user WHERE user.username IN ('aname', 'bname', 'cname',...);
我得到一个选择的用户名列表,减去表中未找到的用户名,grand.
我真正想要的是表中未找到的列表。
如果WHERE...IN 子句列表是一个表,我只需将LEFT JOIN 放到用户表中并过滤NULLs。
有没有办法在不制作临时表并将其加入用户表的情况下做到这一点?我猜,是用户表与WHERE...IN 子句的左连接?
我从未做过或见过它,但也许它存在。
【问题讨论】:
-
是的,也许你不需要
标签: mysql sql join left-join where-in