INSERT INTO product_attr (attr_7, attr_29) WITH RECURSIVE param AS ( SELECT 461 AS attr_7_start, 10 AS attr_7_num, 1097 AS attr_29_start, 3 AS attr_29_num ), attr29_iter (n) AS ( SELECT 0 UNION ALL SELECT n + 1 FROM attr29_iter, param WHERE n < attr_29_num -1 ), attr_7_iter (n) AS ( SELECT 0 UNION ALL SELECT n + 1 FROM attr_7_iter, param WHERE n < attr_7_num -1 ), gen_inc AS ( SELECT i7.n as inc7, i29.n as inc29 FROM attr_7_iter i7, attr29_iter i29 ) SELECT attr_7_start + inc7, attr_29_start + inc29 FROM gen_inc, param ORDER BY 1,2 ;
Sergey, честно говоря недопонял как и куда вставлять product_id и зачем его вставлять в такой запрос? В ваших данных он константный. Я не знаю что за таблицы , jshopping_products, jshopping_products_to_categories и как они связаны с вопросом выше, вы этого не раскрыли...
Если вы хотите продолжения это уже как бы другой вопрос ну и хотя бы структуру обрисуйте, потому что не понятно что как и куда, на работе надоедает ванговать ))
провангую что джойнить надо во внешнем запросе (хотя возможно ошибаюсь, условия не понятны)
SELECT attr_7_start + inc7, attr_29_start + inc29
FROM gen_inc, param
опишите нормально вопрос, с указанием связей и исходных данных и форматируйте код в специальном теге.
почитайте про CTE и про рекурсивные CTE
здесь через рекурсивные CTE создаются наборы чисел, которые джойнятся, получается матрица значений
как-то так, ее инкрементируем на префикс(ы) и получаем требуемый набор значений, который и инсертим.
одной записи в product сколько и каких записей должно соответствовать в product_attr?
в изначальном вопросе
product_id=2779, при этом attr_7=461 .. attr_7=474, а для каждого attr_7 - attr_29= 1097 .. attr_29= 1099
т.е. этот набор
соответствует каждой записи в products?