1 (изменено: olgaaa, 2013-09-25 00:28:28)

Тема: перенос данных старой базы в новую - help please

помогите пожалуйста разобраться с запросами
есть 2 базы, одна старая из которой нужно перенести и новая - в неё нужно перенести все данные

1. разобраться с деревом каталогов (голова уже закипает, решение где то рядом-на поверхности, но из-за неопытности не могу найти...)
в старой базе (bonusgat_tuning) таблицы-категории разбиты на 2 таблицы : родительскую (av_cat) и дочернюю-универсальная (av_prod) - соответственно нумерация разная - т.е. номера могут совпадать,  а в новой базе (test_dbase) в одной таблице (shop_category)  вся привязка и нумерация порядковая (каждая новая дочерняя подкатегория регистрируется как новая категория и присваивается уникальный номер ИД (shop_category.id), проставляется номер родительской категории(shop_category.parent_id))
скрин - товарной единицы bonusgat_tuning.av_item  где поля catID, prodID привязаны к разным таблицам (av_cat,av_prod) соответственно
http://i.pixs.ru:/thumbs/0/6/8/avitemjpg_2474877_9164068.jpg

скрин таблицы av_cat - родительской категории
http://i.pixs.ru:/thumbs/0/6/7/avcatjpg_9463328_9164067.jpg

скрин таблицы av_prod - подкатегорий
http://i.pixs.ru:/thumbs/0/6/9/avprodjpg_5394491_9164069.jpg


а вот скрин новой базы (test_dbase), с таблицей (shop_category) категорий родительских (id) и подкатегорий (parent_id) (если правильно понимаю то возможно - неогранниченное кол-во подкатегорий):
http://i.pixs.ru:/thumbs/0/7/0/shopcatego_4590783_9164070.jpg


а так же скрин новой базы (test_dbase) и таблицы с продуктами (shop_product)
http://i.pixs.ru:/thumbs/0/7/1/shopproduc_3760418_9164071.jpg




родительские категории получилось перенести таким образом:
insert into webasyst_new.shop_category (name,id) select title,ID from tuning_old.av_cat;
здесь расписано http://forum.php-myadmin.ru/viewtopic.php?id=2509

теперь думаю как перенести товар, с описанием, категориями и картинками

товар с описанием но без категорий, точнее родительские перенеслись (см. выше, а вот с подкатегориями - не понятно как их связать), так же нужна помощь, к примеру не знаю как прописать чтобы каждая строчка в названии и в описании начиналась с <p> и заканчивалась </p>, как к скаченному результату прибавить +300 и вписать полученный результат в новую таблицу
вот пример запроса с помеченными в скобках вопросами
insert into test_dbase.shop_product (name,summary,meta_title,description,price,compare_price,category_id,id) select (title,title (с <p></p>),title,description (каждая новая строчка с<p></p>),cost,cost(+300),catID,ID) from bonusgat_tuning.av_item

картинки вот так, тоже нужна помощь - как вставить дату и время, как взять название товара из другой таблицы (bonusgat_tuning.av_item (title)), как скомпоновать название файла из нескольких полей: название файла состоит(itemID.name(только large).jpg),ext)
вот пример запроса с помеченными в скобках вопросами
insert into test_dbase.shop_product_images (upload_datetime(дата и время добавления/переноса),description,product_id,width,height,original_filename,ext) select ((дата и время добавления -сейчас),bonusgat_tuning.av_item (title),itemID,width,height,название файла состоит(itemID.name(только large).jpg),ext) from bonusgat_tuning.av_item_images



надеюсь разберетесь в моей писанине, благодарю за терпение

2

Re: перенос данных старой базы в новую - help please

olgaaa сказал:

как прописать чтобы каждая строчка в названии и в описании начиналась с <p> и заканчивалась </p>

Запросом сделать будет сложно, лучше писать скрипт и им обрабатывать данные в БД.

olgaaa сказал:

как к скаченному результату прибавить +300 и вписать полученный результат в новую таблицу

Прямо так и пишите: `cost` + 300

Текущее время можно выбрать функцией NOW().

С остальными вопросами разобраться не смог.

3

Re: перенос данных старой базы в новую - help please

название файла состоит из полей (itemID+name(выбрать только large)+.jpg)

4

Re: перенос данных старой базы в новую - help please

olgaaa сказал:

название файла состоит из полей (itemID+name(выбрать только large)+.jpg)

Строка объединяется функцией CONCAT().

CONCAT(itemID, name, ".jpg")

name(выбрать только large) - это не понял, лучше с примером.

5

Re: перенос данных старой базы в новую - help please

из столбца name выбрать значения только large

6

Re: перенос данных старой базы в новую - help please

olgaaa сказал:

из столбца name выбрать значения только large

Добавьте в запрос условие:

WHERE `name` = "large"