代码之家  ›  专栏  ›  技术社区  ›  SkyeBoniwell

我的insert语句没有插入任何行

  •  0
  • SkyeBoniwell  · 技术社区  · 3 年前

    我有两张桌子,看起来像这样:

    • game (身份证、头衔、地点)
    • gamePlayers (玩家类型,游戏ID)

    我可以看到我有90个游戏在我的id中没有相应的id 游戏玩家 具有此查询的表:

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

    所以我想为丢失的游戏创建条目,并为添加值“1” playerType ,以及的游戏id gameId .

    所以我试了一下:

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

    但它根本没有插入任何内容。

    它不应该插入90行吗?

    谢谢

    0 回复  |  直到 3 年前
        1
  •  3
  •   Stu    3 年前

    下面的轻微重构对你有用吗?

    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)