Обновить данные из той же таблицы, с вложенной датой - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь создать таблицу, которую можно использовать для сравнения набора 8 координат GPS.В конце концов я хочу проверить, что эти координаты находятся на расстоянии не более 20 м друг от друга.В настоящее время у меня возникают проблемы при заполнении этой таблицы, поскольку я получаю следующую ошибку:

Код ошибки: 1093. Невозможно указать целевую таблицу «GPS1» для обновления в предложении FROM

Я пытался изменить свой запрос несколько раз, но безуспешно.

В настоящее время это то, что у меня есть:

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

Любая помощь будет принята с благодарностью.Я также не уверен, что использую правильный подход для достижения желаемого конечного результата, а также буду открыт для альтернативных предложений.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...