sql将一个表数据连接到另一个表

yh2wf1be  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(334)

所以,我目前正在使用phpmyadmin4.7.7,我试图用另一个表中存储的值来更新表a的“纬度”列,这个值是我从csv导入的。我一直在看周围的人都在做什么,但我似乎无法让它发挥作用。
如果我的想法是正确的,我需要做如下的事情:

UPDATE q
SET q.Latitude = a.Latitude
FROM geodata q
INNER JOIN geotemp a
ON q.Latitude = a.Latitude
WHERE q.gridref = a.gridref;

但这给了我以下错误:


# 1064 - You have an error in your SQL syntax; check the manual that

corresponds to your MySQL server version for the right syntax to use 
near 'FROM
geodata q
INNER JOIN geotemp a ON q.Latitude = a.Latitude
WHERE
q' at line 5

我查过内部连接的语法,但是没有发现我所输入的有什么问题,如果我去掉q和a并使用“geodata”和“geotemp”,仍然会发生这种情况,有什么建议吗?
我希望geodata在“gridref”列匹配的现有记录上有geotemps纬度数据。
谢谢

pkbketx9

pkbketx91#

在mysql的updatejoin语法中 SET 子句紧跟在join之后,而不是在 UPDATE 条款。

UPDATE q
FROM geodata q
INNER JOIN geotemp a
    ON q.Latitude = a.Latitude
SET q.Latitude = a.Latitude
WHERE q.gridref = a.gridref;
1tu0hz3e

1tu0hz3e2#

UPDATE geodata q
INNER JOIN geotemp a
ON q.Latitude = a.Latitude
SET q.Latitude = a.Latitude
WHERE q.gridref = a.gridref;

对于常规更新联接:

UPDATE TABLEA a 
JOIN TABLEB b 
ON a.join_colA = b.join_colB  
SET a.columnToUpdate = [something]
WHERE ....

相关问题