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

PostgreSQL:opdatering med venstre ydre selv-tilslutning ignoreret

Du mangler bare en forbindende 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;

Denne formular med NOT EXISTS er sandsynligvis hurtigere, gør det samme:

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

Manualen til UPDATE .

Relateret:




  1. MySQL-opdateringsforespørgsel med WHERE-klausul og INNER JOIN virker ikke

  2. Hvordan finder man i Django et udtryk, der er en del af en streng i stedet for at indeholde den streng?

  3. opdatering af rækker i stedet for at oprette nye indgange database android

  4. Hvordan kontrolleres ydeevnen af ​​mysql-forespørgslen?