【问题标题】:SQL Delete from two tablesSQL 从两个表中删除
【发布时间】:2015-05-21 17:47:12
【问题描述】:

我有两张桌子:“玩家”和“游戏”。 玩家的主键是桌面游戏中的外键。

'player' --> PK = idPlayer
'game'   --> FK = player_idPlayer

所以现在我想删除玩家表中的一名玩家。 SQL 语句还应该删除游戏表中idPlayer = player_idPlayer 的所有条目 - 如果有的话。

我的语句仅在玩家同时在两个表中时才会删除。但是当这个玩家不在游戏桌上时,我也想删除这个玩家。

DELETE player, game 
FROM players, game 
WHERE idPlayer = player_idPlayer AND player_idPlayer = ?

【问题讨论】:

  • 您需要两个 SQL 查询才能从两个表中删除。
  • 或者更好的是,使用级联删除

标签: mysql sql sql-delete


【解决方案1】:

你可以试试左外连接

DELETE p, g 
FROM players p 
LEFT OUTER JOIN game g ON g.player_idPlayer = p.idPlayer
WHERE p.idPlayer = ?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 2012-06-01
    • 2016-06-23
    • 1970-01-01
    相关资源
    最近更新 更多