2016-04-12 2 views
1

Im пытается сделать SQL-запрос на перенос данных для переноса данных из одной базы данных в другую, у старой базы данных около 10-15 таблиц, у новой есть более 300, теперь я пытаюсь сделать одну большую миграцию, я знаю, где все должно идти, я просто не могу понять, как передавать на основе результатов.SQL Выполнить запрос, а затем выполнить другое на основе результатов

Вот что ив получил на данный момент:

SELECT i.item_name AS `item_name` , i.item_rrp AS `item_rrp` , i.item_web_price AS `item_price` , p.product_image AS `product_image` FROM `table1`.`items` JOIN(
`table1`.`items` i , 
`table1`.`products` p 
) WHERE `item_discontinued` = 0 

Теперь с результатами этого я хочу сделать вставку, я знаю, как сделать вставку но как цикл по результатам от первого запрос, я могу использовать PHP, но это preferrable для скорости, что я использую полный SQL

ответ

1

Нет необходимости в цикле, используйте INSERT AS SELECT:

INSERT INTO <YourTable> (<column names .......>) 
SELECT i.item_name AS `item_name` , i.item_rrp AS `item_rrp` , i.item_web_price AS `item_price` , p.product_image AS `product_image` 
FROM `table1`.`items` JOIN(
`table1`.`items` i , 
`table1`.`products` p 
) WHERE `item_discontinued` = 0 
+0

Il дать этому попытку, это будет очень большой сценарий SQL , Это s для magento, так как арсенал API очень медленный для массовых конверсий продуктов. – Hudson

+0

Это сработало, еще раз спасибо ... – Hudson

Смежные вопросы