Обновление прайса

alex000

Guest
бновление прайса

Есть две таблицы: abratt и abra. В abratt находится каталог товаров с ценами. В abra находяться новые цены.
Задача - надо обновить цены в abratt, взятые из abra. При этом обновление должно происходит так:
- в табл.abratt проапдейтить цены, взятые из табл.abra (но только там, где kod соответствуют друг другу).
- в табл.abra есть kod, которых нет в табл.abratt, то надо вставить соответствующие записи в табл.abratt из табл.abra.
- в табл.abratt есть kod, которых нет в табл.abra, то надо проапдейтить соответствующие цены в табл.abratt на значение ноль.


abratt - таблица, в которую записываются данные
структура abratt:
opis text NOT NULL, // описание товара
kod int(5) NOT NULL default '0', //код товара
price double(6,3) NOT NULL default '0.000', //цена товара
PRIMARY KEY (kod)

abra - таблица, из которой берутся данные
структура abra:
kod1 int(5) NOT NULL default '0', //код товара (из нового прайса)
price1 double(6,3) NOT NULL default '0.000', //новая цена товара
PRIMARY KEY (kod1)


Код:
$result=mysql_query("UPDATE abratt SET price=0",$db); //обнуляет старые цены
$result1=mysql_query("REPLACE INTO abratt (kod, price) SELECT abra.kod1, abra.price1 FROM abra",$db); //вставляет новые цены там, где код из таблицы abratt соответствует коду из таблицы abra

В результате его исполнения происходит обнуление столбца price в таблице abratt, затем обновление цен там, где соответствуют коды, добавились новые записи, но произошло удаление информации из столбца opis (удалилось описание товара).
Как сделать так, чтобы цены обновлялись, а инфа в других столбцах не изменялась
 

kostya.sys

Guest
попробуй объеденить таблицы по коду товара
SELECT arbatt.kod, arbat.opis, abra.price1 FROM arbatt, abra WHERE arbatt.kod = abra.kod1;

а вообще автар жжот !!
 
Сверху