首頁 > 資料庫 > mysql教程 > 如何使用INNER JOIN正確更新MySQL資料?

如何使用INNER JOIN正確更新MySQL資料?

Barbara Streisand
發布: 2024-12-08 00:34:11
原創
756 人瀏覽過

How to Correctly Update MySQL Data Using INNER JOIN?

使用 Inner Join 進行更新的 MySQL 查詢

使用者最近在 MySQL 中嘗試使用 INNER JOIN 執行 UPDATE 語句時遇到錯誤5.0。儘管使用了正確的欄位名稱,還是發生了錯誤。

原始查詢如下:

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
登入後複製

問題在於查詢的語法。若要解決此問題,必須在 UPDATE 語句中明確命名表。更正後的查詢為:

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
登入後複製

使用者也遇到了語法錯誤。為了確認更正後的查詢不包含語法錯誤,創建了以下表進行測試:

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;
登入後複製

使用 MySQL 5.5.8 對這些表執行更正後的查詢時,沒有發生語法錯誤。查詢結果顯示沒有符合或變更的行。

以上是如何使用INNER JOIN正確更新MySQL資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板