mysql查询使用2个表更新表中的数据

时间:2013-11-04 19:27:54

标签: mysql

我正在尝试构建一个简单的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个查询中执行此操作?感谢。

2 个答案:

答案 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

(编辑;误读了问题)