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

Bagaimana cara memasukkan ke dalam tabel dari tabel lain dengan mencocokkan nilai?

Anda dapat bergabung dengan tabel tambahan dalam UPDATE pernyataan, memungkinkan untuk bentuk yang lebih disukai ini:

UPDATE books b
SET    author_id = a.author_id
FROM   authors a
WHERE  b.author = a.author_name;

Tiga alasan:

  • Ini lebih aman. Kueri Anda akan menulis nilai NULL di setiap baris yang tidak menemukan penulis yang cocok. Itu tidak terlihat penting dalam kasus Anda, tetapi berpotensi menyebabkan hilangnya data dalam kueri serupa di mana Anda sudah memiliki data di kolom yang akan diperbarui. Alternatif saya tidak melakukan apa pun jika tidak ada penulis yang cocok ditemukan.

  • Ini lebih cepat. Di atas untuk satu. Tetapi juga karena subquery yang berkorelasi seperti Anda memiliki skala sangat. Bergabung dalam sebuah tabel umumnya lebih cepat, terutama dengan lebih dari beberapa baris.

  • Ini lebih bersih dan lebih mudah disesuaikan dengan kolom tambahan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kesalahan segmentasi pg.rb [Mojave upgrade]

  2. psycopg2 membocorkan memori setelah permintaan besar

  3. Jelaskan JOIN vs. LEFT JOIN dan WHERE kondisi saran kinerja secara lebih rinci

  4. Temukan semua kecocokan untuk tim tertentu di PostgreSQL

  5. PostgreSQL - Referensi Kunci Asing Tabel Saling Eksklusif