2013-11-04 78 views
2

我想建立一個簡單的cms系統。我有2個表:mysql查詢更新表中的數據使用2表

表頁:

id | index | lang 
------------------------------- 
1 | 9  | 1 
2 | 10  | 1 
3 | 11  | 1 
4 | 0  | 2 
5 | 0  | 2 
6 | 0  | 2 

表對:

id1 | id2 
------------ 
1 | 4 
2 | 5 
3 | 6 

我想要做的,是不斷更新。其中有LANG = 2頁面索引lang = 1的相同數字,並且是根據另一個表格的配對頁面。

在上面的例子中,我需要更新網頁4,5,6並設置其索引9,10,11

是否有可能做到這一點在1個查詢?謝謝。

+0

3,4,5?不是4,5,6? –

+0

當然,對不起 – Dusan

回答

1

我會做這個用的多表更新:

UPDATE pages AS l2 
INNER JOIN pairs AS p ON l2.id = p.id2 
INNER JOIN pages AS l1 ON l1.id = p.id1 
SET l2.index = l1.index 
WHERE l2.lang = 2; 
+0

完全按照我的意願工作。謝謝 – Dusan

0

試試這個:

UPDATE pages 
SET index = (SELECT id1 FROM pairs WHERE pages.id = pairs.id2) 
WHERE updateTbl.index = 0 

(編輯;誤讀的問題)

+0

好吧,我明白了。那麼最簡單的解決方案是否正確地做到這一點?謝謝。 – Dusan

+0

我改變了我的答案;我誤解了你的問題。 –

+0

我將WHERE部分更改爲pages.language = 2,但是id沒有正常工作 – Dusan