@eugeneledenev

Почему запрос не работает?

UPDATE 
	oc_decomo_items di1
SET 
	di1.product_id=NULL,
	di1.add_to_shop=0
FROM 
	oc_decomo_items di 
	LEFT JOIN oc_product p 
	ON p.product_id=di.product_id
WHERE 
	di.product_id IS NOT NULL 
	AND p.product_id IS NULL
	AND di1.item_id = di.item_id

Выдает ошибку. Не могу понять почему.
SQL Error [1064] [42000]: 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
oc_decomo_items di
LEFT JOIN oc_product p
ON p.product_id=di.product_' at line 6

Сама выборка без update работает:
SELECT di.product_id FROM oc_decomo_items di 
	LEFT JOIN oc_product p 
	ON p.product_id=di.product_id
WHERE 
	di.product_id IS NOT NULL 
	AND p.product_id IS NULL
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
@eugeneledenev Автор вопроса
Похоже моя субд не поддерживает from
вот как выглядит работающий вариант:

UPDATE 
	oc_decomo_items di
	LEFT JOIN oc_product p 
	ON p.product_id=di.product_id
SET 
	di.product_id=NULL,
	di.add_to_shop=0
WHERE 
	di.product_id IS NOT NULL 
	AND p.product_id IS NULL
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
VladimirAndreev
@VladimirAndreev
php web dev
у UPDATE нет секции FROM.
Ответ написан
LaRN
@LaRN
Senior Developer
Тут условие странное:

di.product_id IS NOT NULL
AND p.product_id IS NULL

При этом:
p.product_id=di.product_id

Тут одно поле всегда д.б. NULL, а второе всегда не NULL и условие p.product_id=di.product_id никогда не выполнится.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы