2

この答えは私が必要としているものに近いですが、私の状況は少し異なります。SQLテーブルは次のようになります。

+------+----------+-----------+
|  aid |  afname  |  alname   |
+------+----------+-----------+
|  01  |  John    |  Doe      |
|  02  |  Stephen |  Williams |
|  03  |  Jane    |  Doe      |
|  04  |  Peter   |  Brown    |
|  05  |          |           |
+------+----------+-----------+

ここで、 02afnameを持つ行からとalnameフィールドのみを複製/コピーし、 05を持つ行に挿入する必要があります。 aidaid

これは私が試したクエリですが、構文エラーがスローされます。

INSERT INTO table1(afname, alname) 
WHERE aid = '05'
SELECT afname, alname
FROM table1
WHERE aid = '02'

誰かがこれを達成する方法を教えてもらえますか?

どうもありがとう。

4

1 に答える 1

4

aid= '05'の行がない場合:

INSERT INTO table1(aid,afname, alname)
SELECT '05', afname, alname
FROM table1
WHERE aid = '02'

= '05'の行があり、aidそれを更新したい場合:

update t2
set t2.afname = t1.afname, t2.alname = t1.alname
from table1 t1 join table1 t2 on t1.aid = '02' and t2.aid = '05'
于 2012-11-14T04:39:17.830 に答える