У меня есть одна таблица, например ценники, которые хранят специальные цены на статьи для клиентов. Теперь я хочу синхронизировать цены на основе другого пользователя. Предположим, у меня есть это как набор данных:
+---------------------------+
| user_id | prod_id | price |
+---------+---------+-------+
| 10 | 1 | 1 |
| 10 | 2 | 5 |
| 10 | 3 | 7 |
| 20 | 2 | 5 |
| 30 | 2 | 5 |
| 30 | 3 | 7 |
+---------+---------+-------+
Теперь я хотел бы обновить / вставить цены для нескольких других пользователей, основываясь на ценах пользователя 10. Я уже написал запрос на удаление и обновление, но я застрял с запросом на вставку, чтобы вставить новые правила, которые других пользователей еще нет.
Так эффективно это будет делать следующие вставки:
INSERT INTO pricerules
(user_id, prod_id, price)
VALUES
(20, 1, 1),
(20, 3, 7),
(30, 1, 1);
Есть ли способ сделать это в одном запросе? Я искал MINUS
, чтобы выбрать записи, которых нет для пользователя 20, но мне нужно было бы выполнить запрос для каждого пользователя.
Я думал, может быть, я мог бы использовать MERGE
.
Я использую Oracle 10.1 ..