Apabila melaksanakan pertanyaan MySQL yang melibatkan pengemaskinian jadual dan merujuknya sebagai sumber data dalam pertanyaan yang sama, anda mungkin menghadapi ralat "Jadual ditentukan dua kali." Ralat ini berlaku apabila jadual yang sama adalah kedua-dua sasaran pernyataan KEMASKINI dan muncul sebagai jadual berasingan dalam subkueri yang digunakan untuk menentukan kriteria kemas kini.
Untuk menyelesaikan ralat ini dan berjaya mengemas kini jadual yang dikehendaki, ikuti ini langkah:
SELECT m2.branch_id FROM manager AS m2 WHERE (m2.branch_id, m2.year) IN (...)
SELECT * FROM (SELECT m2.branch_id FROM manager AS m2 WHERE (m2.branch_id, m2.year) IN (...)) AS subquery
UPDATE manager SET status = 'Y' WHERE branch_id IN ( SELECT branch_id FROM subquery );
Dengan menggunakan jadual terbitan, anda elakkan daripada menentukan jadual pengurus sebagai sasaran dan sumber data, menyelesaikan ralat "Jadual dinyatakan dua kali". Teknik ini memastikan bahawa subkueri hanya dirujuk sekali dan membenarkan kenyataan KEMASKINI untuk dilaksanakan dengan jayanya.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Jadual Ditentukan Dua Kali' dalam Pertanyaan KEMASKINI MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!