使用嵌套日期更新来自同一表的数据

时间:2019-03-08 05:37:39

标签: mysql sql-update

我正在尝试创建一个表,可以用来比较一组8个GPS坐标。最终,我要检查这些坐标之间的距离不超过20m。我目前在填充此表时遇到问题,因为我不断收到以下错误:

  

错误代码:1093。您无法在FROM子句中指定要更新的目标表'GPS1'

我尝试过几次更改查询,但是没有运气。

目前这是我所拥有的:

UPDATE ots_outlet_gps AS GPS1
LEFT JOIN

(SELECT *
FROM

    (SELECT    
        TMP.store_code
    ,   TMP.gps
    ,   TMP.action_date
    FROM tmp_outlet_gps TMP
    JOIN
    (SELECT * 
    FROM 
        ots_outlet_gps JOI
    WHERE 
        action_date1 > (SELECT action_date1 FROM ots_outlet_gps AS AA WHERE store_code = JOI.store_code GROUP BY store_code) 
    ) INN
    ON 
    TMP.store_code = INN.store_code
    WHERE 
        action_date >= '2019-01-01'
    AND action_date <= '2019-01-06'   
    ) PRNK
) SRC
ON
    GPS1.store_code = SRC.store_code  
SET
    GPS1.gps2 = SRC.gps 
,   GPS1.action_date2 = SRC.action_date  
WHERE 
    GPS1.gps2 IS NULL
AND GPS1.action_date2 IS NULL
;        

表结构(ots_outlet_gps):

id              int(6)
store_code      bigint(12)
action_date1    date
gps1            varchar(20)
variance1       decimal(8,2)
action_date2    date
gps2            varchar(20)
variance2       decimal(8,2)
etc

表结构(tmp_outlet_gps):

store_code  int(10)
gps         varchar(20)
action_date date

任何帮助将不胜感激。我也不确定我是否使用正确的方法来获得所需的最终结果,并且是否愿意接受其他建议。

谢谢。

0 个答案:

没有答案