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

PostgreSQL:aktualizace s ignorováním levého vnějšího vlastního připojení

Chybí vám pouze spojovací WHERE klauzule:

UPDATE catalog_category c
SET    leaf_category = true
FROM   catalog_category c1 
LEFT   JOIN catalog_category c2 ON c1.id = c2.parent_id
WHERE  c.id = c1.id
AND    c2.parent_id IS NULL;

Tento formulář s NOT EXISTS je pravděpodobně rychlejší a dělá to samé:

UPDATE catalog_category c
SET    leaf_category = true
WHERE  NOT EXISTS (
    SELECT FROM catalog_category c1
    WHERE  c1.parent_id = c.id
    );

Příručka pro UPDATE .

Související:




  1. Aby soubor database.yml fungoval v Rails na OSX

  2. Dotaz na prvky ve vnořeném poli objektu json v postgresql 9.4 nebo 9.5

  3. Oracle převádí RAW do formátu data

  4. 'SQLSTATE[HY093]:Neplatné číslo parametru:počet vázaných proměnných neodpovídá počtu tokenů'