我的“用户”表中有一个用户名列表(名为“用户名”)+其他信息。
我的小“recentusers”表中还有另一个用户名列表(名为“username”的列)。
如何创建mysql查询以获取“users”表中但不在“recentusers”表中的所有用户名?
我知道这可能很简单,但任何帮助都会受到赞赏!
答案 0 :(得分:4)
select username from users where username not in (select username from recentusers)
然后在第一个用户名后添加您要选择的其他信息。
正如OMG Ponies所指出的,此查询的运行速度与使用Left Join or Is null.
一样快答案 1 :(得分:2)
NOT IN
关键字应该有用:
SELECT username
FROM users
WHERE username NOT IN (
SELECT username
FROM recentusers
)
答案 2 :(得分:1)
SELECT * FROM users
LEFT JOIN recentusers USING (username)
WHERE recentusers.username IS NULL;
答案 3 :(得分:1)
您还可以使用左连接(其执行速度比子查询快):
SELECT
users.username
FROM
users LEFT JOIN recentusers
ON users.username = recentusers.username
WHERE
recenterusers.username is null
答案 4 :(得分:0)
连接应该比子查询更快,但我真的不知道mysql是否支持这个。
select * from users
left outer join recentusers
on users.key = recentusers.key