Mysql 选择subselect返回多个值的行
我有两个表[用户]和[团队]。我的用户表类似于[ID][电子邮件]。我的Teams表看起来像这个[Team][UserID] 我需要做如下的子选择: 从“ID”!=从团队中选择UserID 问题是Subselect返回多个值。所以我不能这样比较 我想要实现的是: 我希望数据来自表[Teams]中未列出的用户 例如:Mysql 选择subselect返回多个值的行,mysql,sql,database,select,Mysql,Sql,Database,Select,我有两个表[用户]和[团队]。我的用户表类似于[ID][电子邮件]。我的Teams表看起来像这个[Team][UserID] 我需要做如下的子选择: 从“ID”!=从团队中选择UserID 问题是Subselect返回多个值。所以我不能这样比较 我想要实现的是: 我希望数据来自表[Teams]中未列出的用户 例如: Table [Users] | Table[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]中未列出第三个用户。我想要用户的电子邮件,因为他不在这些团队中
我怎样才能做到这一点呢?而不是!=不用于:
请注意,子查询中的UserID不为NULL。。。如果子查询返回一个或多个空值,NOT IN将失败。而不是!=不用于:
请注意,子查询中的UserID不为NULL。。。如果子查询返回一个或多个空值,NOT IN将失败。您可以有多种方法来实现相同的功能 下面是一种方法 挑选* 来自用户
如果ID不在SELECT UserID FROM teams中,您可以有多种方法来实现相同的功能 下面是一种方法 挑选* 来自用户 如果ID不在SELECT UserID FROM teams中,我们也可以使用EXISTS子句: 我们也可以使用EXISTS子句:
谢谢,那很容易。我应该自己拿的谢谢,很简单。我应该自己拿这个,而不是!=不要使用代替!=不用于
SELECT * FROM users WHERE ID NOT IN (SELECT UserID FROM teams WHERE UserID IS NOT NULL)
SELECT *
FROM users u
WHERE NOT EXISTS (SELECT 1 FROM teams t WHERE u.ID = t.UserID);