我的插入语句没有插入任何行
My insert statement is not inserting any rows
我有两个 table 看起来像这样:
game
(id, title, location)
gamePlayers
(playerType, gameId)
我可以看到我有 90 个游戏在我的 gamePlayers
table 中没有相应的 id 与此查询:
SELECT *
FROM dbo.game
WHERE id NOT IN (SELECT gameId FROM dbo.gamePlayers)
所以我想为丢失的游戏创建条目并为 playerType
添加值“1”,为 gameId
添加游戏 ID。
所以我尝试了这个:
INSERT INTO dbo.gamePlayers
SELECT 1, p.id
FROM dbo.game p
WHERE p.id NOT IN (SELECT gameId FROM dbo.gamePlayers)
但是它根本没有插入任何东西。
它不应该插入 90 行吗?
谢谢!
以下轻微重构对您有用吗?
insert into dbo.gamePlayers(playerType, gameId)
select 1, p.id
from dbo.game p
where not exists (select * from gamePlayers gp where gp.gameId=p.Id)
我有两个 table 看起来像这样:
game
(id, title, location)gamePlayers
(playerType, gameId)
我可以看到我有 90 个游戏在我的 gamePlayers
table 中没有相应的 id 与此查询:
SELECT *
FROM dbo.game
WHERE id NOT IN (SELECT gameId FROM dbo.gamePlayers)
所以我想为丢失的游戏创建条目并为 playerType
添加值“1”,为 gameId
添加游戏 ID。
所以我尝试了这个:
INSERT INTO dbo.gamePlayers
SELECT 1, p.id
FROM dbo.game p
WHERE p.id NOT IN (SELECT gameId FROM dbo.gamePlayers)
但是它根本没有插入任何东西。
它不应该插入 90 行吗?
谢谢!
以下轻微重构对您有用吗?
insert into dbo.gamePlayers(playerType, gameId)
select 1, p.id
from dbo.game p
where not exists (select * from gamePlayers gp where gp.gameId=p.Id)