我正在尝试构建一个简单的cms系统。我有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 :(得分: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;
答案 1 :(得分:0)
试试这个:
UPDATE pages
SET index = (SELECT id1 FROM pairs WHERE pages.id = pairs.id2)
WHERE updateTbl.index = 0
(编辑;误读了问题)