0

我在同一个数据库中有两个非常相似的表。我想从表中取出整个“视觉”列p992_cq31n06-cm16-x并将其放入p992_cq31n06-cu67-x“打印”和“id3”列匹配的表的“视觉”列中。

这是我要运行的查询:

    UPDATE `p992_cq31n06-cu67-x`
    SET visual = (
        SELECT visual
        FROM `p992_cq31n06-cm16-x`
    WHERE 
        `p992_cq31n06-cu67-x`.print = `p992_cq31n06-cm16-x`.print 
    AND
        `p992_cq31n06-cu67-x`.id3 = `p992_cq31n06-cm16-x`.id3);

这会按我想要的方式工作吗?

4

2 回答 2

0

是的,您的查询将按照您希望的方式进行。

您也可以使用 a 来表达这一点join

UPDATE `p992_cq31n06-cu67-x` cu67 join
       `p992_cq31n06-cm16-x`cu16
       on cu67.print = cu16.print and cu67.id3 = cu16.id3
    SET cu67.visual = cu16.visual;

join如果您想设置多个列,则特别有利。

于 2013-09-13T17:09:18.867 回答
0

使用连接:

update p992_cq31n06-cu67-x a 
inner join p992_cq31n06-cm16-x b on a.print = b.print and a.id3 = b.id3
set a.visual = b.visual

对于 MSSQL(这是我误读的问题!)它

update a
set visual = b.visual
from
p992_cq31n06-cu67-x a
inner join p992_cq31n06-cm16-x b on a.print = b.print and a.id3 = b.id3
于 2013-09-13T17:10:02.873 回答