sql >> Databasteknik >  >> RDS >> Mysql

Varför misslyckas inte frågan med en obefintlig kolumn i underfrågan?

Denna fråga:

select sum(amount)
from aaa
where id not in (select id from bbb);

Tolkas som:

select sum(aaa.amount)
from aaa
where aaa.id not in (select aaa.id from bbb);

eftersom bbb.id existerar inte. När du skriver SQL föreslår jag att du alltid använder tabellalias. Frågan som du trodde att du skrev:

select sum(aaa.amount)
from aaa
where aaa.id not in (select bbb.id from bbb);

skulle generera det fel du förväntar dig.



  1. Skapa användare från strängvariabler i ett PL/SQL-block

  2. Ställ in AUTO_INCREMENT-värdet programmatiskt

  3. Vad är poängen med Initial Catalog i en SQL Server-anslutningssträng?

  4. Välj topp tre värden i varje grupp