2013-12-06 1 views
1

Я нахожусь в oscommerce. Мне нужно обновить products_quantity, но у меня есть только products_nameОбновление 2 таблицы

первой таблицы ПРОДУКТЫ --products_id --products_quantity

PRODUCTS_DESCRIPTION --products_id --products_name

Мой первый тест:

UPDATE `products` 
SET `products_quantity`='8' 
where `products_id` = (SELECT `products_id` FROM `products_description` WHERE `products_name`='TOP CAISSE PLETSCHER') 

Плохой синтаксис

мой второй тест

UPDATE `products` 
SET `products_quantity`='8' 
where `products_id` = "SELECT `products_id` FROM `products_description` WHERE `products_name`='TOP CAISSE PLETSCHER'" 

нет ошибок, но мой продукт не обновляется. Я думаю, что этот метод не поддерживает мою версию MySQL: 3.23.58

Моего третий тест:

UPDATE `products` 
SET `products`.`products_quantity`='8' 
FROM `products` 
INNER JOIN `products_description` 
WHERE `products`.`products_id` = `products_description`.`products_id` 
AND `products_description`.`products_name`='TOP CAISSE PLETSCHER' 

У меня есть эта ошибка:

You have an error in your SQL syntax near 'FROM `products` INNER JOIN `products_description` WHERE `products`.`produc' at line 1 

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

Я использую MySQL 3.23.58

+0

Я думаю, вы можете делать 'UPDATE products INNER JOIN products_description SET products.products_quantity = '8' WHERE ...' –

+3

Правильно ли это версия MySQL? MySQL 3 ?! Сейчас мы на 5.6. –

+0

Вы используете программное обеспечение ca. 2000! Обновить. – Strawberry

ответ

0

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

Во-первых,

SELECT `products_id` FROM `products_description` WHERE `products_name`='TOP CAISSE PLETSCHER' 

, а затем сохранить результат в переменной массива, и в обновлении петли, например:

foreach($result_array as $id) { 
    UPDATE `products` 
    SET `products_quantity`='8' 
    WHERE `products_id` = $id 
} 

Try и дайте нам знать, если это помогает.

+0

мой последний комментарий: «Это невозможно с этой версией mysql. Я разрешаю свою проблему с php-скриптом с 2-мя запросами». Но thx для вашего ответа;) – ColoO

+0

Oh. ОК. Я не заметил «показать все комментарии», поэтому я не знал об этом :) Однако вопрос остался без ответа, вы можете опубликовать ответ и принять его по своему усмотрению;) – Line

+1

Это тот же вывод. Я не похлопываю сам за то, что потерял 6 часов своего времени, чтобы сделать многократное обновление в версии mysql, у которой нет этой функции. Хорошего дня;) – ColoO

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