Home > Enterprise >  My insert statement is not inserting any rows
My insert statement is not inserting any rows

Time:12-04

I have two tables that look like this:

  • game (id, title, location)
  • gamePlayers (playerType, gameId)

I can see that I have 90 games that do not have a corresponding id in my gamePlayers table with this query:

SELECT * 
FROM dbo.game
WHERE id NOT IN (SELECT gameId FROM dbo.gamePlayers)

So I want to create entries for the missing games and add the value '1' for the playerType, and the id of the game for gameId.

So I tried this:

INSERT INTO dbo.gamePlayers
    SELECT 1, p.id 
    FROM dbo.game p
    WHERE p.id NOT IN (SELECT gameId FROM dbo.gamePlayers)

But it doesn't insert anything at all.

Shouldn't it insert 90 rows?

Thanks!

CodePudding user response:

Does the following slight refactor work for you?

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)
  • Related