Pertanyaan Kemas Kini Oracle dengan Sertai
Pertimbangkan pertanyaan kemas kini Oracle 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);
Isu:
Pertanyaan dilaksanakan selama-lamanya disebabkan oleh keadaan hilang yang akan memastikan subquery mengembalikan satu baris untuk setiap baris yang dikemas kini dalam t1.
Penyelesaian:
Untuk menyelesaikan isu, syarat mesti ditambahkan pada subquery untuk mengaitkan baris dalam t1 dengan baris dalam subquery. Sebagai contoh, keadaan berikut boleh digunakan:
AND t1.some_key = t2.some_key
Pertanyaan dikemas kini yang terhasil akan kelihatan seperti ini:
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 AND t1.some_key = t2.some_key);
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Pertanyaan KEMASKINI Oracle dengan JOIN Yang Berjalan Tanpa Had?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!