4

これが私がやろうとしていることです。

これはselectステートメントです

select Id 
from tblUsersPokemons 
where UserId = 1 and PokemonPlace = 'bag'

次に、返されたIDを次のような別のテーブルに挿入します。

foreach all returned Ids
   insert into tblNpcBattleUsersPokemons values (Id, 1)

どうやってやるの ?

4

3 に答える 3

10

このような:

insert into tblNpcBattleUsersPokemons
select Id, 1 from tblUsersPokemons where UserId=1 and PokemonPlace='bag'
于 2012-12-10T22:28:48.440 に答える
6

これは、単一の SQL 呼び出しで実行できます。

insert into tblNpcBattleUsersPokemons (id, [whatever the name of the other column is])
    select Id, 1 from tblUsersPokemons where UserId=1 and PokemonPlace='bag'

ここでロングハンドを使用したのは、時間の経過とともに変更され、insert ステートメントが無効になる可能性がある宛先テーブルの列の順序について想定していないためです。

于 2012-12-10T22:29:53.460 に答える
1

INSERT...SELECT 構文を使用して、SELECT によって取得されたセットを別の既存のテーブルに挿入できます。

例えば:

INSERT INTO tblNpcBattleUsersPokemons (Id, Val)  -- not sure what the second column name was 
SELECT Id FROM tblUsersPokemons WHERE UserID = 1 and PokemonPlace='bag';
于 2012-12-10T22:29:46.450 に答える