簡體   English   中英

SQL幫助-根據匹配其他字段來更新一個表中的字段以匹配另一個表中的字段

[英]SQL help - Updating a field in one table to match a field in another table based on matching a different field

感謝任何幫助。 我正在設計的數據庫有點差。 我需要通過更新基於另一個表的表來修復一些不良數據,如下所示(我在寬松地描述我需要的SQL):

兩張桌子:

  • Airports -包括字段: latlonairport_id
  • Events -包括字段: latlonairport_id

我想將(當前不正確)事件表latlon為(正確)機場表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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM