Mysql
 sql >> Base de données >  >> RDS >> Mysql

La solution à la sous-requête renvoie plus d'une erreur de ligne

= peut être utilisé lorsque la sous-requête ne renvoie qu'une seule valeur.

Lorsque la sous-requête renvoie plus d'une valeur, vous devrez utiliser IN :

select * 
from table
where id IN (multiple row query);

Par exemple :

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