sql >> Databáze >  >> RDS >> PostgreSQL

Použití klauzule EXCEPT v PostgreSQL

Váš dotaz se zdá naprosto platný:

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

názvy sloupců jsou pro dotaz irelevantní. Pouze typy dat se musí shodovat. Název výstupního sloupce vašeho dotazu je fk_id_tbl2 , jen proto, že je to název sloupce v prvním SELECT . Můžete použít jakýkoli alias.

Co je často přehlíženo:jemné rozdíly mezi EXCEPT (což složí duplikáty) a EXCEPT ALL – který zachovává všechny jednotlivé neshodné řádky. Další vysvětlení a další způsoby, jak udělat totéž, některé z nich jsou mnohem flexibilnější:

  • Vyberte řádky, které se nenacházejí v jiné tabulce

Podrobnosti pro EXCEPT v návodu.




  1. SQL - Vytvořte pohled z více tabulek

  2. Procedura očekává parametr, který nebyl zadán

  3. PDO fetchAll seskupuje páry klíč–hodnota do pole asociace

  4. 4 způsoby, jak zjistit, jaké sloupce budou vráceny uloženou procedurou na serveru SQL