Penyelesaian Masalah Pertanyaan Sertaan Dalam Kemas Kini MySQL
Isu telah dihadapi semasa cuba melaksanakan pertanyaan kemas kini MySQL berikut:
UPDATE b SET b.mapx = g.latitude, b.mapy = g.longitude FROM business AS b INNER JOIN business_geocode g ON b.business_id = g.business_id WHERE (b.mapx = '' OR b.mapx = 0) AND g.latitude > 0
Ralat menunjukkan isu kompilasi, tetapi semua nama medan kelihatan seperti itu sah.
Penyelesaian Berkemungkinan
Setelah dianalisis, adalah dicadangkan bahawa isu itu mungkin terletak pada penggunaan alias jadual yang salah. Cuba ubah suai pertanyaan seperti berikut:
UPDATE business AS b INNER JOIN business_geocode AS g ON b.business_id = g.business_id SET b.mapx = g.latitude, b.mapy = g.longitude WHERE (b.mapx = '' or b.mapx = 0) and g.latitude > 0
Dalam pertanyaan yang disemak ini, alias jadual dinyatakan secara eksplisit untuk memastikan rujukan yang betul bagi medan jadual.
Penyelesaian Masalah Tambahan
Jika pertanyaan yang disemak juga menghasilkan ralat, ia mungkin berfaedah untuk membuat jadual sementara untuk mengesahkan struktur pertanyaan tanpa mengubah jadual asal. Ini boleh membantu mengenal pasti sebarang kemungkinan isu sintaks atau struktur.
Selain itu, disyorkan untuk menyemak dokumentasi MySQL untuk mesej ralat khusus yang berkaitan dengan pertanyaan kemas kini. Ini boleh memberikan cerapan lanjut tentang punca isu tersebut.
Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL UPDATE INNER JOIN Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!