2
我之前問過幾乎相同的問題,但由於序列發生器,我無法使用MERGE語法。問題是我們有數據庫中人員的價格規則。我想爲這些應該有相同規則的人同步這些價格規則。根據同一表中的主記錄插入缺失的記錄
+---------------------------+
| id | name | belongs_to_id |
|----+------+---------------+
| 1 | A | |
| 2 | B | 1 |
| 3 | C | 1 |
| 4 | D | |
+----+------+---------------+
確定,所以現在的人B和C的需求,最終有相同的價格規則,用戶A.所以我有一個pricerule表(簡體)是這樣的:
+-----------------------------------+
| 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
專門爲USER_ID 1插入,我補充說:「和user.belogds_to_id = 1」的底部..正確的記錄似乎表明了。 – rolandow 2012-04-26 13:12:02