Saya mencoba melakukan sesuatu seperti ini di postgres:
UPDATE table1 SET (col1, col2) = (SELECT col2, col3 FROM othertable WHERE othertable.col1 = 123);
INSERT INTO table1 (col1, col2) VALUES (SELECT col1, col2 FROM othertable)
Tetapi poin 1 tidak dimungkinkan bahkan dengan postgres 9.0 seperti yang disebutkan di dokumen ( http://www.postgresql.org/docs/9.0/static/sql-update.html )
Juga poin 2 sepertinya tidak berfungsi. Saya mendapatkan kesalahan berikut: subquery harus mengembalikan hanya satu kolom.
Semoga ada yang punya solusi untuk saya. jika tidak, kueri akan memakan waktu lama :(.
FYI: Saya mencoba memilih kolom yang berbeda dari beberapa tabel dan menyimpannya ke dalam tabel sementara, sehingga aplikasi lain dapat dengan mudah mengambil data yang disiapkan.
sumber
Jawaban OMG Ponies berfungsi dengan sempurna, tetapi jika Anda membutuhkan sesuatu yang lebih kompleks, berikut adalah contoh kueri pembaruan yang sedikit lebih canggih:
sumber
sumber