Не получается вставить несколько строк из одной таблицы в другую - MySQL
Формулировка задачи:
Добрый день.
Нужно вставить в таблицу
либо
Но мускуль ссылается на ошибку
oc_product_to_category
в столбцыcategory_id
,main_category
,product_id
значенияcategory_id = 137
(постоянное),main_category = 0
(постоянное),product_id
= мы выбираем из таблицыoc_product_option_value
гдеoption_value_id = 118
Т.е. category_id и main_category - всегда одинаковые, а product_id - уникальный номер, который меняется в каждой строке. [IMG=http://modamio.ru/asd.PNG][/IMG] Я пытался сделать это таким образом:INSERT INTO `oc_product_to_category` (`category_id`, `main_category`, `product_id`) (SELECT 137 AS category_id, 0 AS main_category, `product_id` FROM `oc_product_option_value` WHERE `option_value_id` = '118');
INSERT INTO `oc_product_to_category` (`product_id`, `category_id`, `main_category`) VALUES ((SELECT `product_id` FROM `oc_product_option_value` WHERE `option_value_id` = '118'), '137', '0');
#1062 - Duplicate entry '2175-137' for key 'PRIMARY'
Т.е. такие числовые значения в колонкеproduct_id
уже присутствуют. Подскажите пожалуйста, как обойти данную ошибку? Заранее благодарен!Решение задачи: «Не получается вставить несколько строк из одной таблицы в другую»
textual
Листинг программы
USE `modamio2`; INSERT INTO oc_product_to_category SELECT category_table.product_id, 137, 0 FROM oc_product_to_category category_table INNER JOIN oc_product_option_value option_table ON category_table.product_id = option_table.product_id WHERE category_table.category_id = 67 AND option_table.option_value_id = 127
Объяснение кода листинга программы
- USE
modamio2
; — Подключение к базе данныхmodamio2
- INSERT INTO oc_product_to_category — Команда вставки данных в таблицу
oc_product_to_category
- SELECT category_table.product_id, 137, 0 FROM oc_product_to_category category_table — Выборка данных из таблицы
oc_product_to_category
- INNER JOIN oc_product_option_value option_table ON category_table.product_id = option_table.product_id — Соединение таблиц
oc_product_to_category
иoc_product_option_value
по полюproduct_id
- WHERE category_table.category_id = 67 AND option_table.option_value_id = 127 - Фильтрация данных по полям
category_id
иoption_value_id
- END; — Конец запроса
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д