所以,我目前正在使用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纬度数据。
由于
答案 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 ....