SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.02.2012 18:22:53

Avanege
Участник
Зарегистрирован: 11.02.2012
Сообщений: 12

Возможно ли?

В общем есть 2 БД, одна на 520 товаров, другая на 170, в общем мне нужно влить бд2 в бд1 таким образом, чтобы в базе 1 с 520 товарами, изменилось всё кроме ID

Вот первая(520) и вторая(170) база

Неактивен

 

#2 11.02.2012 18:46:00

Avanege
Участник
Зарегистрирован: 11.02.2012
Сообщений: 12

Re: Возможно ли?

Кто найдет решение получит 3.30 бакса, которые завалялись в моём электронном кошельке, они ждут Вас wink

Отредактированно Avanege (11.02.2012 18:46:41)

Неактивен

 

#3 11.02.2012 18:53:05

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Возможно ли?

Avanege написал:

Возможно ли?

Возможно.
Осталось лишь конкретизировать задачу smile

Неактивен

 

#4 11.02.2012 18:59:59

Avanege
Участник
Зарегистрирован: 11.02.2012
Сообщений: 12

Re: Возможно ли?

vasya написал:

Avanege написал:

Возможно ли?

Возможно.
Осталось лишь конкретизировать задачу smile

Сможешь помочь?

Неактивен

 

#5 11.02.2012 19:02:04

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Возможно ли?

А для чего я, по вашему, отвечал в прошлом сообщении?

Неактивен

 

#6 11.02.2012 19:32:58

Avanege
Участник
Зарегистрирован: 11.02.2012
Сообщений: 12

Re: Возможно ли?

Что именно вас интересует из моего вопроса, что именно уточнить?

Неактивен

 

#7 11.02.2012 19:39:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Возможно ли?

Какой результат вы хотите получить: в первой базе должно получиться 520 строк или 170? Если 520, то какие строки меняются, что с остальными? Если 170, то какие id должны остаться неизменными? Что подразумевается под ID - любая колонка имеющая в своем имени _id?

Неактивен

 

#8 11.02.2012 19:56:24

Avanege
Участник
Зарегистрирован: 11.02.2012
Сообщений: 12

Re: Возможно ли?

У каждого товара в базе есть свой `product_id` , при добавлении продукта в интернет магазин все данные записываются в таблицы oc_product, oc_product_attribute, и так далее (все таблицы есть в файлах).
К примеру в oc_product записывается основная информация о продукте, в другие таблицы вспомогательная(изображения, описание, атрибуты,категория, итд)
То есть при добавлении товара формируется его `product_id` , этот `product_id` прописывается вспомогательных таблицах, ссылаясь на товар.
Мне нужно перенести товары из 170 в 520 c заменой, и там и там они есть, но с разным описанием, атрибутами итд.
Совпадает только артикул (поле sku). Но перенести так, чтобы товар А из таблицы А(520) перенесся в таблицу Б(170), пере записалось все кроме артикула и `product_id`.

Неактивен

 

#9 11.02.2012 20:03:12

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Возможно ли?

Avanege написал:

Мне нужно перенести товары из 170 в 520 c заменой, и там и там они есть, но с разным описанием, атрибутами итд.
Совпадает только артикул (поле sku). Но перенести так, чтобы товар А из таблицы А(520) перенесся в таблицу Б(170), пере записалось все кроме артикула и `product_id`.

Так, всё-таки, из 520 в 170 или наоборот?

Неактивен

 

#10 11.02.2012 20:07:08

Avanege
Участник
Зарегистрирован: 11.02.2012
Сообщений: 12

Re: Возможно ли?

Из 170 в 520

Неактивен

 

#11 11.02.2012 20:23:45

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Возможно ли?

Т.е. артикул уникальное значение и его совпадение в разных базах указывает на то, что это один товар?
Тогда вам нужен Multiple-table update

Например, для oc_product

update db1.oc_product, db2.oc_product set db1.oc_product.`model`=db2.oc_product.`model`, db1.oc_product.`country`=db2.oc_product.`country`,.....для всех полей кроме `sku` и   `product_id` ....
where db1.oc_product.sku=db2.oc_product.sku;

Неактивен

 

#12 11.02.2012 20:27:19

Avanege
Участник
Зарегистрирован: 11.02.2012
Сообщений: 12

Re: Возможно ли?

Хорошо, но кроме oc_product есть ешё около 7 таблиц которые требуют замены.

Неактивен

 

#13 11.02.2012 20:35:36

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Возможно ли?

Аналогично. Смотрите какое поле характеризует совпадение записей в разных базах и делаете multiple-table update

Неактивен

 

#14 11.02.2012 20:47:26

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Возможно ли?

Пардон, там сложнее будет. Например, для `oc_product_attribute` будет что-то вроде


update db1.oc_product, db1.`oc_product_attribute`, db2.oc_product, db2.`oc_product_attribute`
set db1.`oc_product_attribute`.`attribute_id`=db2.`oc_product_attribute`.`attribute_id`, ...
....для всех полей кроме` `product_id` ....
where db1.`oc_product_attribute`.`product_id`=db1.oc_product.`product_id`
and db1.oc_product.sku=db2.oc_product.sku
and db2.`oc_product_attribute`.`product_id`=db2.oc_product.`product_id`;

Отредактированно vasya (11.02.2012 21:08:09)

Неактивен

 

#15 11.02.2012 20:52:06

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Возможно ли?

Т.е. для остальных таблиц где запись характеризуется product_id придется делать update через 4 таблицы. Как в прошлом примере.

Неактивен

 

#16 11.02.2012 21:03:22

Avanege
Участник
Зарегистрирован: 11.02.2012
Сообщений: 12

Re: Возможно ли?

Примерно понял, спасибо, если будут вопросы, как мне тебя найти?\
=

Неактивен

 

#17 11.02.2012 21:07:21

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Возможно ли?

На форуме wink

Неактивен

 

#18 11.02.2012 21:26:15

Avanege
Участник
Зарегистрирован: 11.02.2012
Сообщений: 12

Re: Возможно ли?

E-mail, это аналог ЛС??? Внутри форумное?) или тебе на мыло сообщения приходят?

Неактивен

 

#19 11.02.2012 21:28:19

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Возможно ли?

На мыло

Неактивен

 

#20 11.02.2012 21:36:09

Avanege
Участник
Зарегистрирован: 11.02.2012
Сообщений: 12

Re: Возможно ли?

Трудно будет тебя найти wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson