如何使用WHERE子句获取整列的数据并将其放入另一列?

时间:2013-09-13 17:06:20

标签: mysql sql database subquery

我在同一个数据库中有两个非常相似的表。我想从表格p992_cq31n06-cm16-x中获取整个“视觉”列,并将其放入表格p992_cq31n06-cu67-x的“视觉”列中,其中列'print'和'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);

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

2 个答案:

答案 0 :(得分:0)

是的,您的查询将以您希望的方式运行。

您也可以使用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特别有利。

答案 1 :(得分: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