Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择subselect返回多个值的行_Mysql_Sql_Database_Select - Fatal编程技术网

Mysql 选择subselect返回多个值的行

Mysql 选择subselect返回多个值的行,mysql,sql,database,select,Mysql,Sql,Database,Select,我有两个表[用户]和[团队]。我的用户表类似于[ID][电子邮件]。我的Teams表看起来像这个[Team][UserID] 我需要做如下的子选择: 从“ID”!=从团队中选择UserID 问题是Subselect返回多个值。所以我不能这样比较 我想要实现的是: 我希望数据来自表[Teams]中未列出的用户 例如: Table [Users] | Table[Teams] | -------------- ------------------

我有两个表[用户]和[团队]。我的用户表类似于[ID][电子邮件]。我的Teams表看起来像这个[Team][UserID]

我需要做如下的子选择:

从“ID”!=从团队中选择UserID

问题是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]中未列出第三个用户。我想要用户的电子邮件,因为他不在这些团队中


我怎样才能做到这一点呢?

而不是!=不用于:


请注意,子查询中的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);