SQL update table when condition from another row

SQL update table when condition from another row

09.08.2018 02:04:44 Просмотров 12 Источник

как сложить вместе эту схему?

update ps_product_shop set price.2=price.1/25.5 where id_product = *the_same* 
price.1 -> id_shop=1
price.2 -> id_shop=2
id_product -> the same for both shops

Он находится в prestashop, таблица с ценами. В таблице ps_product_shop у меня есть on row1 id_shop = 1 и ond row2 id_shop=2

Мне нужно обновить свои цены для двух разных валютных магазинов.

Возьмите "цену" из id_shop=1, Разделите ее на 25,5 (CZK / EUR) и установите ее на цену для id_shop=2

Я был за несколько лет до того администратором Oracle db, но сейчас я уже не занимаюсь этим делом... :)

Спасибо. Команче

обновление: это mysql, я пометил его MySQL в начале потока...

в таблице,

строка.... id_product.... id_shop.... цена

строка 1...12............1..........Пятьсот

ряд 2...12............2..........Восемь

Мне нужно обновить строку 2 с ценой / 25.5

У вопроса есть решение - Посмотреть?

Ответы - SQL update table when condition from another row / SQL update table when condition from another row

Gordon Linoff

09.08.2018 02:07:44

Вы можете использовать join. Если я правильно понял:

update ps_product_shop ps2 join
       ps_product_shop ps1
       on ps1.id_product = ps2.id_product and
          ps1.id_shop = 1 and ps2.id_shop = 2
    set ps2.price = ps1.price / 25.5;

Это предполагает, что существует одна строка на комбинацию магазин/продукт.

Является ответом!
Monami Dey

09.08.2018 03:02:13

Вы можете использовать этот ниже запрос в MySql. Поскольку id_product будет одинаковым для обоих магазинов,запрос join должен использоваться внутри запроса update.

update ps_product_shop pps1 join ps_product_shop pps2
on pps1.id_product = pps2.id_product
set pps2.price = pps1.price/25.5 where pps2.id_shop='2'; 
Закрыть X