2014-07-07 134 views
0

我有兩個MySQL表casespivotMYSQL INSERT,UPDATE DELETE

cases看起來是這樣的:

Idgame Id 
    1  2 
    1  1 
    1  5 
    1  3 
    1  1 
    1  6 
    ... ... 
    1  2 

pivot看起來是這樣的:

Idgame Id Icone 
    1  1  7 
    1  2  14 
    1  3  15 
    1  5  6 
    1  6  1 

所有標識在pivot必須cases

的不同Id

用戶可以修改cases中的ID,所以當有變更時我想更新pivot

1)如果有一個新的ID尚未pivot我想在pivot與ICONE = 1添加一個新行(我設置1爲默認值)

2)如果有些標識不再在cases我要刪除他們pivot

3)如果ID仍處於cases

我試圖做到這一點與REPLACE INTO或插上重複鍵我沒有改變pivot什麼,但我無法做到這一點...

我嘗試了下面的東西。它幾乎可以工作,但不會執行刪除(點2): 我在pivot的3列(id,idgame和icone)上添加了PRIMARY KEY。

REPLACE INTO `pivot` (id,idgame,icone) 
SELECT DISTINCT cases.id, cases.idgame, pivot.icone 
FROM `cases` 
LEFT JOIN pivot ON (pivot.Idgame = cases.Idgame AND pivot.id = cases.id) 
WHERE cases.Idgame = 1 

只有一個請求可以做到嗎?

回答

相關問題