2

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

4

2 回答 2

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;
于 2013-11-04T19:36:56.760 回答
0

试试这个:

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

(已编辑;误读了问题)

于 2013-11-04T19:33:11.137 回答