Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengemas kini Data MySQL Dengan Betul Menggunakan INNER JOIN?

Bagaimana untuk Mengemas kini Data MySQL Dengan Betul Menggunakan INNER JOIN?

Barbara Streisand
Lepaskan: 2024-12-08 00:34:11
asal
758 orang telah melayarinya

How to Correctly Update MySQL Data Using INNER JOIN?

Pertanyaan MySQL Menggunakan Inner Join untuk Kemas Kini

Seorang pengguna baru-baru ini mengalami ralat semasa cuba melaksanakan kenyataan UPDATE menggunakan INNER JOIN dalam MySQL 5.0. Ralat berlaku walaupun menggunakan nama medan yang betul.

Pertanyaan asal adalah seperti 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
Salin selepas log masuk

Isunya terletak pada sintaks pertanyaan. Untuk menyelesaikannya, jadual mesti dinamakan secara eksplisit dalam kenyataan UPDATE. Pertanyaan yang diperbetulkan ialah:

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
Salin selepas log masuk

Pengguna juga mengalami ralat sintaks. Untuk mengesahkan bahawa pertanyaan yang diperbetulkan tidak mengandungi ralat sintaks, jadual berikut telah dibuat untuk ujian:

CREATE TABLE business (business_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, mapx VARCHAR(255), mapy VARCHAR(255)) ENGINE=INNODB;

CREATE TABLE business_geocode (business_geocode_id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, business_id INT UNSIGNED NOT NULL, latitude VARCHAR(255) NOT NULL, longitude VARCHAR(255) NOT NULL, FOREIGN KEY (business_id) REFERENCES business(business_id)) ENGINE=INNODB;
Salin selepas log masuk

Apabila melaksanakan pertanyaan yang diperbetulkan terhadap jadual ini menggunakan MySQL 5.5.8, tiada ralat sintaks berlaku. Hasil pertanyaan menunjukkan bahawa tiada baris yang dipadankan atau diubah.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Data MySQL Dengan Betul Menggunakan INNER JOIN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan