【发布时间】:2012-03-20 13:30:37
【问题描述】:
我有一张桌子,例如pricerules,按商品为客户存储特价。现在我想根据其他用户同步价格规则。假设我有这个作为数据集:
+---------------------------+
| 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 ..
【问题讨论】: