Lebih
Oracle SQL: Update tabel dengan data dari tabel lain
Tabel 1:
id name desc
-----------------------
1 a abc
2 b def
3 c adf
Tabel 2:
id name desc
-----------------------
1 x 123
2 y 345
Di oracle SQL, bagaimana cara menjalankan aplikasi sql update query yang dapat update Tabel 1 dengan Tabel 2's nama
dan desc
menggunakan id
? Sehingga hasil akhir yang saya dapatkan adalah
Tabel 1:
id name desc
-----------------------
1 x 123
2 y 345
3 c adf
Pertanyaan ini diambil dari https://stackoverflow.com/questions/5036918/sql-update-query-with-data-from-another-table tapi khusus untuk oracle SQL.
232
7
Ini disebut berkorelasi update
Dengan asumsi bergabung dengan hasil yang di kunci-diawetkan lihat, anda juga bisa
Coba ini:
mencoba
Di sini tampaknya menjadi yang lebih baik menjawab dengan 'di' klausul yang memungkinkan untuk beberapa tombol untuk bergabung:
Lengkap contoh berikut: http://forums.devshed.com/oracle-development-96/how-to-update-from-two-tables-195893.html
Daging sapi memiliki kolom yang ingin anda gunakan sebagai kunci dalam tanda kurung di mana klausa sebelum 'di' dan pilih pernyataan yang sama dengan nama kolom dalam tanda kurung. di mana (column1,column2) dalam ( pilih (column1,column2) dari tabel di mana "saya ingin" );
pernah bekerja untuk saya sejak ditetapkan hanya mengharapkan 1 nilai - SQL Error: ORA-01427: single-row subquery menghasilkan lebih dari satu baris.
berikut ini's solusi:
Yang's bagaimana tepatnya anda jalankan di SQLDeveloper lembar kerja. Mereka mengatakan itu's lambat tapi yang's satu-satunya solusi yang bekerja untuk saya pada hal ini.
Jika meja anda t1 dan's cadangan t2 memiliki banyak kolom, di sini's cara yang kompak untuk melakukannya.
Selain itu, saya terkait masalah itu hanya beberapa kolom yang dimodifikasi dan banyak baris yang tidak memiliki suntingan untuk kolom ini, jadi saya ingin meninggalkan mereka sendirian - pada dasarnya mengembalikan subset kolom dari cadangan dari seluruh tabel. Jika anda hanya ingin mengembalikan semua baris, melewatkan klausa where.
Tentu saja cara yang lebih sederhana akan menghapus dan menyisipkan serta memilih, tapi dalam kasus saya, saya membutuhkan solusi dengan hanya update.
Kuncinya adalah bahwa ketika anda melakukan select * from sepasang tabel dengan kolom duplikat nama, ke-2 akan mendapatkan yang bernama _1. Jadi di sini's apa yang saya datang dengan: