sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL:uppdatering med vänster yttre jag-anslutning ignoreras

Du saknar bara en anslutande WHERE klausul:

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;

Detta formulär med NOT EXISTS är förmodligen snabbare, gör detsamma:

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

Handboken för UPDATE .

Relaterat:




  1. SLUT tabell, gör ingenting när det matchas

  2. Hur man kör Jasmine beforeAll för alla testfiler

  3. Sök efter alla förekomster av en sträng i en mysql-databas

  4. WAMP-server i grönt men får bara 404