Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan MySQL UPDATE INNER JOIN Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Pertanyaan MySQL UPDATE INNER JOIN Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Patricia Arquetteasal
2024-12-06 14:16:11568semak imbas

Why is My MySQL UPDATE INNER JOIN Query Failing, and How Can I Fix It?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn