2015-03-04 1 views
0

Я пытаюсь обновить количество в таблице Prestashop. Я внутреннее соединение, чтобы получить БКИ из таблицы «ps_product_attribute»Обновление SQL с помощью Inner Join в Prestashop в DB

UPDATE ps_stock_available 
SET ps_stock_available.quantity = ps_stock_available.quantity - 1 
INNER JOIN ps_product_attribute ON ps_product_attribute.id_product_attribute = ps_stock_available.id_product_attribute 
WHERE ps_product_attribute.ups = 01900000118; 

Но я всегда эта ошибка:

#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 'INNER 
JOIN ps_product_attribute ON ps_product_attribute.id_product_attribute = p' at line 3 

Кто-то может мне помочь? Я попробовал много разных вещей.

EDIT: У меня есть попробовать другой способ:

С SELECT, я могу иметь id_product_attribute от ps_stock_available.

SELECT id_product_attribute 
FROM ps_product_attribute 
WHERE upc in ("01900000118","01900000119"); 

Возможно ли сделать обновление с результатом?

UPDATE ps_stock_available 
SET quantity = quantity-1 
WHERE id_product_attribute in ("result1", "result2"); 
+0

Если это прямая копия-копия, то в тексте запроса, вероятно, что-то не так, что вы не можете видеть, что это беспорядок. Если бы мне пришлось угадать, нуль-ширину или комбинацию символов Юникода. Попробуйте удалить затронутый раздел и немного вокруг него, а затем переименовать с нуля. –

+0

У меня нет символа Юникода. Я пробовал много чего ... Я не знаю, что делать ...: S –

ответ

0

Я нашел решение!

SELECT sa.id_product, sa.id_product_attribute, sa.quantity, pa.upc 
FROM ps_stock_available AS sa 
LEFT OUTER JOIN ps_product_attribute AS pa ON pa.id_product_attribute = sa.id_product_attribute 
WHERE sa.id_product = 140;