sql >> Databasteknik >  >> RDS >> Mysql

Lösning på underfrågan returnerar fler än 1 radfel

= kan användas när underfrågan endast returnerar 1 värde.

När underfrågan returnerar mer än 1 värde måste du använda IN :

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

Till exempel:

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


  1. Dela upp stora raderingsoperationer i bitar

  2. JPA SQL Server Ingen dialektmappning för JDBC-typ:-9

  3. Oracle sql handledning:Grundläggande SQL-sats

  4. Dumpa en mysql-databas till en klartext (CSV) säkerhetskopia från kommandoraden