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

Mengonversi hubungan banyak-ke-banyak menjadi satu-ke-banyak di PostgreSQL

UPDATE bar b
SET    foo_id = fb.foo_id
FROM   foo_bar fb
WHERE  fb.bar_id = b.bar_id;

Jika Anda harus memiliki beberapa baris untuk satu bar (yang seharusnya tidak, menurut deskripsi Anda) satu baris akan diperbarui beberapa kali dan hasilnya sewenang-wenang.

Bentuk kueri ini umumnya berkinerja lebih baik daripada subkueri yang berkorelasi.

Perhatikan bahwa kunci utama bar harus benar-benar diberi nama bar_id - Saya menggunakan nama itu dalam kueri.



  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 - Tetapkan nilai integer ke string dalam pernyataan kasus

  2. Cara membuat array dari SELECT mengembalikan lebih dari satu baris

  3. Batasan kunci asing dengan beberapa nilai kolom berada di tabel lain

  4. Klon catatan, lalu gunakan id kenaikan otomatisnya untuk operasi lebih lanjut

  5. Tabel terpotong Postgresql dengan batasan kunci asing