sql >> Databáze >  >> RDS >> Mysql

Proč dotaz neselže s neexistujícím sloupcem v poddotazu?

Tento dotaz:

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

Vykládá se jako:

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

protože bbb.id neexistuje. Při psaní SQL doporučuji, abyste vždy používali aliasy tabulek. Dotaz, který jste si mysleli, že píšete:

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

způsobí chybu, kterou očekáváte.



  1. AKTUALIZUJTE, pokud existuje jinak INSERT v SQL Server 2008

  2. Vypočítejte věk v letech v PostgreSQL

  3. Jak používat připravené příkazy mysqli?

  4. Součet násobení sloupců pro řádky s podobnými ID v MySQL