Замена значения по трем таблицам
Доброго времени суток!
Имеются 3 таблицы: price, product и Atable.
product (id, opisanie ...)
и tseni(id, tsena_spb , tsena_msk ,...)
связанны по id.
Atable имеет 2 столбца: price и opisanie.
Задача заменить tseni.tsena_spb
и tsena_msk
на Atable.price
, если product.opisanie = Atable.opisanie;
.
Запросом
select * from (select produkt.opisanie , Atable.price from produkt left join Atable on produkt.opisanie like Atable.desk)t1 where t1.price is not null;
я получил совпадения.
Столкнулся со сложностью - не обновляет (то ли запрос составил неверно, то ли не дождался выполнения (хотя вряд ли)):
update tseni, Atable2, produkt set tseni.tsena_spb = Atable2.price and tseni.tsena_msk = Atable2.price where produkt.opisanie = Atable2.desk;
Atable2
- это результат вышеприведенной выборки.
Не отходя от темы:
mysql> select * from (select produkt.opisanie , Atable.price from produkt left join Atable on produkt.opisanie like Atable.desk)t1 where t1.price is not null;
всего 380 rows
mysql> select * from (select produkt.opisanie , Atable.price from produkt left join Atable on SOUNDEX(produkt.opisanie) = SOUNDEX(Atable.desk))t1 where t1.price is not null
836 rows in set (43.22 sec)
При использовании функции soundex()
по двум переменных полученно 836 результатов.
Насколько рационально это использовать, если Atable.opisanie
в виде:
Плитка керамическая настенная TREASURE KASHMIR 25x75 см
Заранее спасибо.