2015-12-01 2 views
0

Im получаю следующее сообщение об ошибке на мой запрос:ошибка синтаксиса на УДАЛИТЬ СЛЕВА INNER JOIN

ERROR: syntax error at or near "p" 

Это мой запрос:

DELETE p FROM property_import_image_results p 
    LEFT JOIN LATERAL (SELECT q.created_at FROM property_import_image_results q 
    WHERE q.external_url=p.external_url AND (q.listing_image_id = p.listing_image_id OR q.listing_image_id IS NULL) 
    ORDER BY q.created_at DESC NULLS LAST LIMIT 1) as qf ON p.created_at = qf.created_at 
    WHERE qf.created_at is NULL; 

Любая идея, что может быть проблема?

+0

Итак, какой RBDMS? – Strawberry

+0

postgres. Я исправлю вопрос сейчас. – ntonnelier

+0

УДАЛИТЬ ИЗ property_import_image_results p –

ответ

0

Нет необходимости в p между условиями DELETE и FROM: http://www.w3schools.com/sql/sql_delete.asp. Поэтому попробуйте удалить его.

+2

http: // meta. stackexchange.com/questions/87678/discouraging-w3schools-as-a-resource - возможно, профессиональное соперничество, но просто sayin ' – Strawberry

+0

Не тот случай, когда вы собираетесь удалить из JOIN. Это была моя первая попытка на самом деле. – ntonnelier

+0

@Strawberry спасибо за ссылку, я буду использовать эту ссылку на w3schools более тщательно в будущем. – Aurelien

0

Хотя я не знаком с особенностями postgresql, разве вы не говорите «удалить mytable из mytable» в начале вашего заявления на удаление? Разве это не должно быть «удалить из property_import_image_results p ... и т. Д.»?

+1

Ваши ответы, как правило, получаются лучше, если они не сформулированы как вопросы. –

2

Вы не можете формулировать запрос таким образом. Возможно, это то, что вы хотите:

DELETE FROM property_import_image_results p 
    WHERE NOT EXISTS (SELECT 1 
         FROM property_import_image_results q 
         WHERE q.external_url = p.external_url AND 
          q.created_at > p.created_at AND 
          (q.listing_image_id = p.listing_image_id OR q.listing_image_id IS NULL) 
        ) ; 
+0

спасибо @Gordon Linoff, но мне нужен ORDER BY, чтобы получить последний созданный результат (im в основном пытается получить avary result, group by external_url, кроме самого последнего) – ntonnelier

+0

@ntonnelier. , , Понимаю. Я изменил '=' на '>', который должен получить самую последнюю версию для обновления. –

Смежные вопросы