![](/img/trans.png)
[英]MYSQL: Updating a customer field based on a partial match to another table's field
[英]SQL help - Updating a field in one table to match a field in another table based on matching a different field
感謝任何幫助。 我正在設計的數據庫有點差。 我需要通過更新基於另一個表的表來修復一些不良數據,如下所示(我在寬松地描述我需要的SQL):
兩張桌子:
Airports
-包括字段: lat
, lon
, airport_id
。 Events
-包括字段: lat
, lon
, airport_id
。 我想將(當前不正確)事件表lat
和lon
為(正確)機場表lat和lon。
基本上: UPDATE events WHERE <events.airport_id = airports.airport_id> SET events.lat = airports.lat
然后我可以再次運行它。
我知道我已經接近了,但是沒有確切的語法。
謝謝!
這也應該起作用:
UPDATE events e
set e.lat = (select a.lat from airports a where a.airport_id = e.airport_id),
e.lon = (select a.lon from airports a where a.airport_id = e.airport_id)
;
是的,您很接近,但是需要使用JOIN
進行UPDATE
。 這是正確的語法:
UPDATE events AS e
INNER JOIN Airports AS a ON e.airport_id = a.airport_id
SET e.lat = a.lat,
e.lon = a.lon;
你把表引用,這是在指定的更新表UPDATE
子句的JOIN
編表后直接UPDATE
子句那么后SET
子句,也可以包含一個可選的WHERE
在最后條款。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.