解决“子查询返回多于一行”错误的方法
我有一个查询返回多行,而我想将条件设置为这些多行中的一个值的查询,所以基本上我希望子查询看起来像这样:
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