PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL:aktualizacja z ignorowaniem lewego zewnętrznego self-join

Brakuje tylko łączącego WHERE klauzula:

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;

Ten formularz z NOT EXISTS jest prawdopodobnie szybszy, robiąc to samo:

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

Podręcznik UPDATE .

Powiązane:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres on Rails FATAL:baza danych nie istnieje

  2. SQL:Odejmowanie 1 dnia od daty ze znacznika czasu

  3. Nie można usunąć roli PostgreSQL. Błąd:`nie można usunąć, ponieważ niektóre obiekty od niego zależą`

  4. Postgres:jak zaokrąglić znacznik czasu w górę lub w dół do najbliższej minuty?

  5. Zaktualizuj tabelę i dodaj dane w migracji Laravel 5