0

同じデータベースに非常によく似たテーブルが 2 つあります。テーブルから「visual」列全体を取得し、列「print」と「id3」が一致するp992_cq31n06-cm16-xテーブルの「visual」列に配置したいと考えています。p992_cq31n06-cu67-x

実行しようとしていたクエリは次のとおりです。

    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

結合を使用します。

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 に答える
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は、複数の列を設定する場合に特に有利です。

于 2013-09-13T17:09:18.867 に答える