SQL将一个表数据连接到其他人

时间:2018-04-16 13:33:20

标签: mysql sql phpmyadmin

所以,我目前正在使用PHPmyadmin 4.7.7,我正在尝试基本上更新表A的“Latitude”列,其中的值存储在我从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”仍然会发生任何建议?

我希望这里的结果是地理数据在“gridref”列匹配的现有记录上有geotemps纬度数据。

由于

2 个答案:

答案 0 :(得分:2)

在MySQL的更新连接语法中,SET子句在连接之后立即出现,而不是在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;

答案 1 :(得分:1)

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 ....