Kemas kini dengan Sertai Pertanyaan dalam Oracle
Pengguna Oracle menghadapi masa pelaksanaan yang tidak berkesudahan untuk pertanyaan berikut:
UPDATE table1 t1 SET (t1.col,t1.Output) = ( SELECT t2.col, t3.Output + t2.col FROM tabl2 t3 LEFT JOIN table1 t2 ON t3.Join_Key = t2.Join_Key WHERE t2.col is not NULL);
Melainkan subquery SELECT menjamin hasil satu baris, pernyataan UPDATE akan gagal dengan ralat:
ORA-01427: single-row subquery returns more than one row
Kemas kini yang berkaitan memerlukan syarat yang memautkan baris dalam jadual luar (jadual1 dalam kes ini) dan subkueri dalam. Biasanya, keadaan ini muncul:
AND t1.some_key = t2.some_key);
Selain itu, pertanyaan mengemas kini setiap baris dalam jadual1. Jika pengguna berhasrat untuk mengemas kini baris tertentu, klausa WHERE yang menapis berdasarkan syarat gabungan harus ditambah, seperti:
... WHERE subquery_condition
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membetulkan ORA-01427 dalam Penyata KEMASKINI Oracle Saya dengan Subquery JOIN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!