PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL:perbarui dengan bergabung dengan diri luar kiri diabaikan

Anda baru saja kehilangan WHERE yang menghubungkan klausa:

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;

Formulir ini dengan NOT EXISTS mungkin lebih cepat, melakukan hal yang sama:

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

Manual untuk UPDATE .

Terkait:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dalam migraiton Rails, bagaimana cara menetapkan nilai default kolom menjadi SEKARANG () alih-alih waktu ketika saya menjalankan migrasi?

  2. satu-ke-satu pembatasan yang berbeda pada seleksi

  3. PostgreSQL - pengelompokan berdasarkan kolom jsonb

  4. Bisakah saya menggunakan nilai pengembalian INSERT...RETURNING di INSERT lain?

  5. PG::UndefinedTable:ERROR:relasi tidak ada dengan penamaan dan konvensi Rails yang benar