sql >> Database teknologi >  >> RDS >> PostgreSQL

Bruger EXCEPT-klausulen i PostgreSQL

Din forespørgsel ser ud til at være helt gyldig:

SELECT fk_id_tbl2 AS some_name
FROM   table1
EXCEPT  -- you may want to use EXCEPT ALL
SELECT pk_id
FROM   table2;

Kolonne navne er irrelevante for forespørgslen. Kun datatyper skal matche. Outputkolonnenavnet på din forespørgsel er fk_id_tbl2 , bare fordi det er kolonnenavnet i den første SELECT . Du kan bruge et hvilket som helst alias.

Hvad der ofte overses:de subtile forskelle mellem EXCEPT (som folder dubletter) og EXCEPT ALL - som holder alle individuelle umatchede rækker. Flere forklaringer og andre måder at gøre det samme på, nogle af dem meget mere fleksible:

  • Vælg rækker, der ikke findes i en anden tabel

Detaljer for EXCEPT i manualen.




  1. MySQL OPDATERING og VÆLG i én gang

  2. PDOException SQLSTATE[HY000] [2002] Ingen sådan fil eller mappe

  3. Hvordan tilføjer jeg streng med automatisk stigningsværdi i SQL Server?

  4. Fejl 1022 - Kan ikke skrive; dublet nøgle i tabel