我有两个表[用户]和[团队]。我的users表类似于[id][e-mail]。我的teams表如下所示[team][userid]。
我需要做一个如下的子选择: SELECT * FROM users WHERE 'ID' != (SELECT UserID FROM teams)
问题是subselect返回多个值。所以我不能这样比较。
我想达到的目标:
我想从没有在表[teams]中列出的用户那里得到数据。
例子:
Table [Users] | Table[Teams] |
-------------- ------------------
[ID] [E-Mail] [UserID] [Team]
1 example1@google.com | 1 Football
2 example2@google.com | 1 Basketball
3 example3@google.com | 2 Basketball
如您所见,有3个现有用户,但第三个用户没有列在表[teams]中。我想要用户的电子邮件,因为他不在这些团队中。
我怎么能做到呢?
3条答案
按热度按时间zaqlnxep1#
我们也可以使用
EXISTS
条款:dfddblmv2#
您可以有多种方法来实现相同的功能
下面是select*from users where id not in的一种方法(select userid from teams)
ttp71kqs3#
而不是
!=
使用NOT IN
:注意
UserID IS NOT NULL
在子查询中。。。NOT IN
如果子查询返回一个或多个NULL
价值观。