我有一个查询返回多行,而我想将条件设置为这些多行中的一个值的查询,所以基本上我希望子查询看起来像这样:
select * from table where id= (multiple row query);
where multiple row query返回多行。因此,如果这些行中的值为1,2,3,那么我想将id设置为1或2或3。
multiple row query
= 当子查询仅返回1值时可以使用。
=
当子查询返回的值大于1时,您将必须使用IN:
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