Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dlaczego zapytanie nie kończy się niepowodzeniem z nieistniejącą kolumną w podzapytaniu?

To zapytanie:

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

Jest interpretowany jako:

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

ponieważ bbb.id nie istnieje. Pisząc SQL sugeruję, abyś zawsze używał aliasów tabel. Zapytanie, o którym myślałeś, że piszesz:

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

wygeneruje oczekiwany błąd.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liczba elementów MySQL w klauzuli

  2. znalezienie produktów, które klienci kupili razem

  3. Synchronizacja bazy danych klienta SQLite z bazą danych serwera MySQL

  4. MySQL:GROUP_CONCAT z LEFT JOIN

  5. Mysql - LIMIT procentowo?