4

这就是我想要做的。

这是选择语句

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'

我在这里使用了速记,因为它不对目标表中列的顺序做出任何假设,这可能会随着时间的推移而改变并使您的插入语句无效。

于 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 回答