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

SQL:Vrátí pouze záznamy bez jakýchkoli přidružení, které splňují kritéria

Nejjednodušší způsob je s not exists nebo left join :

select u.*
from users u left join
     addresses a
     on a.username = u.username and
        a.city = 'Peoria'
where a.city is null;

left join uchovává všechny záznamy o uživatelích a všechny záznamy v addresses které odpovídají on podmínky. V tomto případě (protože název města je v on podmínkou), vrátí všem uživatelům buď informace o městech, nebo NULL hodnoty. where klauzule vybere NULL hodnoty -- ty, které se neshodují.

Ekvivalent not exists může být jednodušší sledovat:

select u.*
from users u 
where not exists (select 1
                  from addresses a
                  where a.username = u.username and
                        a.city = 'Peoria'
                 );



  1. Výkon aplikací založených na PostgreSQL:latence a skryté zpoždění

  2. Vrací výsledek i pro prvky v seznamu IN, které v tabulce neexistují

  3. Nechte AVG ignorovat hodnoty Null nebo Zero

  4. Přesuňte web modx z podsložky do kořenové složky