解决“子查询返回多于一行”错误的方法

我有一个查询返回多行,而我想将条件设置为这些多行中的一个值的查询,所以基本上我希望子查询看起来像这样:

select * 

from table

where id= (multiple row query);

where multiple row query返回多行。因此,如果这些行中的值为1,2,3,那么我想将id设置为1或2或3。

回答:

= 当子查询仅返回1值时可以使用。

当子查询返回的值大于1时,您将必须使用IN

select * 

from table

where id IN (multiple row query);

例如:

SELECT *

FROM Students

WHERE Marks = (SELECT MAX(Marks) FROM Students) --Subquery returns only 1 value

SELECT *

FROM Students

WHERE Marks IN

(SELECT Marks

FROM Students

ORDER BY Marks DESC

LIMIT 10) --Subquery returns 10 values

以上是 解决“子查询返回多于一行”错误的方法 的全部内容, 来源链接: utcz.com/qa/435588.html

回到顶部