我之前问过几乎相同的问题,但由于音序器,我不能使用 MERGE 语法。问题是我们对数据库中的人有定价规则。我想为其他应该有相同规则的人同步这些价格规则。
+---------------------------+
| id | name | belongs_to_id |
|----+------+---------------+
| 1 | A | |
| 2 | B | 1 |
| 3 | C | 1 |
| 4 | D | |
+----+------+---------------+
好的,现在人们 B 和 C 最终需要与用户 A 具有相同的价格规则。所以我有一个价格规则表(简化),如下所示:
+-----------------------------------+
| id | user_id | product_id | price |
+----+---------+------------+-------+
| 1 | 1 | 1 | 0.12 |
| 2 | 1 | 2 | 0.10 |
| 3 | 1 | 3 | 0.03 |
| 4 | 2 | 2 | 0.10 |
| 5 | 2 | 3 | 0.10 |
| 6 | 3 | 1 | 0.12 |
| 7 | 3 | 2 | 0.10 |
| 8 | 3 | 3 | 0.03 |
| 9 | 3 | 4 | 0.25 |
+----+---------+------------+-------+
所以在这个例子中,应该发生的是:
- 给用户 2 产品 1 的价格,价格为 0.10
- 将用户 2 产品 3 的价格更新为 0.03
- 删除用户 3、产品 4 的定价规则
我想我必须采取三个步骤:删除、更新、添加。我得到了前两个。但我正在考虑插入语句。基本上我需要为用户 1 选择所有价格规则,然后按 product_id为每个用户离开加入。我如何为每个用户执行此操作?
我正在使用 Oracle 10.1