PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL:актуализация с игнорирано ляво външно самосъединяване

Просто ви липсва свързващ WHERE клауза:

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;

Този формуляр с NOT EXISTS вероятно е по-бърз, като прави същото:

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

Ръководството за UPDATE .

Свързани:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgresql сортиране на масив по думи във всеки елемент

  2. Как да получите коментар на роля от базата данни на PostgreSQL

  3. Heroku pg:pull неуспешно попълване на схемата

  4. SQL група по период от време

  5. Най-бързият начин за изпълнение на заявка за изтриване в голяма таблица в PostgreSQL