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

Pourquoi la requête n'échoue pas avec une colonne inexistante dans la sous-requête ?

Cette requête :

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

Est interprété comme :

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

car bbb.id n'existe pas. Lors de l'écriture de SQL, je vous suggère de toujours utiliser des alias de table. La requête que vous pensiez écrire :

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

générerait l'erreur attendue.