Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengemas kini Jadual dengan Jumlah Nilai daripada Jadual Lain dalam SQL?
Mengagregatkan dalam Pertanyaan KEMASKINI SQL: Penyelesaian Ringkas
Dalam operasi pangkalan data, mengemas kini nilai jadual berdasarkan fungsi agregat boleh menimbulkan cabaran. Mari kita terokai senario biasa di mana matlamatnya adalah untuk menetapkan nilai dalam satu jadual kepada jumlah nilai dalam jadual lain.
Pertimbangkan pertanyaan berikut:
UPDATE table1 SET field1 = SUM(table2.field2) FROM table1 INNER JOIN table2 ON table1.field3 = table2.field3 GROUP BY table1.field3
Walaupun intuitif, pertanyaan ini akan gagal disebabkan oleh dua kekangan utama: SET tidak menyokong fungsi agregat seperti SUM dan GROUP BY tidak dibenarkan dalam KEMASKINI pertanyaan.
Untuk menyelesaikan isu ini, kami boleh menggunakan subkueri untuk mengira jumlah agregat dan kemudian menggunakan nilai yang dikemas kini dalam pertanyaan KEMASKINI.
UPDATE t1 SET t1.field1 = t2.field2Sum FROM table1 t1 INNER JOIN (select field3, sum(field2) as field2Sum from table2 group by field3) as t2 on t2.field3 = t1.field3
Dalam pertanyaan yang diperhalusi ini:
Dengan menggunakan pendekatan ini, anda boleh berjaya melakukan kemas kini agregat dalam SQL dan mencapai hasil manipulasi data yang diingini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengemas kini Jadual dengan Jumlah Nilai daripada Jadual Lain dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!