SQL:子查询返回的值不止一个

时间:2017-11-07 17:58:31

标签: sql

select emailId
from <table1>
where <cloumn1> in (select <column1>
                    from <table2>
                    where <condition1> and <condition2> and <condition3> is null
                   )
                  ) as <alias Name>

在sql数据库中,我有2个与table2中的角色关联的emailID。现在,在获取时,我需要emailID和其他字段。 如何修改上面的查询使我没有得到“Subquery返回超过1个值”的错误。 PS:这个查询将是一个子查询。

2 个答案:

答案 0 :(得分:1)

SELECT t1.emailId, *
FROM table1 t1
INNER JOIN table2 t2 ON t2.column1 = t1.column1
WHERE t2.condition = something

您可以使用内部联接。

答案 1 :(得分:0)

简答:在TOP 1关键字和第一列之间添加SELECT

长答案,使用JOIN代替子查询是非常低效的。

更新: TOP 1仅适用于MS-SQL,其他版本可能使用不同的方式来LIMIT结果集,但解决方案是相同的。