3

MySQL に問題があります

テーブルが 2 つあり、テーブル 2 の Val1 をテーブル 1 の Val2 に格納したい

表1

ID-----Val1-----Val2
1------A--------NULL
2------B--------NULL
3------C--------NULL
4------D--------NULL
5------E--------NULL

表2

ID-----Val1
1------aaa
2------bbb
3------ccc
4------ddd
5------eee

そのため、Table1 は次のようになります

表1

ID-----Val1-----Val2
1------A--------aaa
2------B--------bbb
3------C--------ccc
4------D--------ddd
5------E--------eee

今、私は持っています

INSERT INTO Table1(Val2) SELECT Val1 FROM Table2 WHERE Table1.ID=Table2.ID;

どんな助けでも大歓迎です!

4

2 に答える 2

6

サブクエリ ( SQLize )のいずれかを使用できます。

UPDATE Table1
SET Val2 = ( SELECT Val1 FROM Table2 WHERE Table1.ID = Table2.ID )
WHERE Val2 IS NULL

または複数テーブルの更新 ( SQLize ):

UPDATE Table1, Table2
SET Table1.Val2 = Table2.Val1
WHERE Table1.ID = Table2.ID AND Table1.Val2 IS NULL

または明示的JOINSQLize)と同じ:

UPDATE Table1 JOIN Table2 ON Table1.ID = Table2.ID
SET Table1.Val2 = Table2.Val1
WHERE Table1.Val2 IS NULL

Table1( forが NULLの行のみを更新したいと思います。一致するs inVal2を持つすべての行の値を上書きしたい場合は、条件を削除するだけです。)IDTable2WHERE Table1.Val2 IS NULL

于 2012-03-05T20:31:04.307 に答える
0
update table1 
inner join table2 on table1.id = table2.id
set table1.val2 = table2.val1
于 2012-03-05T20:31:01.323 に答える