mysql - SQL从两个表中删除

标签 mysql sql sql-delete

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

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

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

只有当玩家同时在两个表中时,我的语句才会删除。但当该玩家不在游戏 table 上时,我也想删除该玩家。

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

最佳答案

您可以尝试使用左外连接

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

关于mysql - SQL从两个表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30380894/

相关文章:

mysql - 将上个月的日期添加到选择中

php - 使用可选参数构建 SQL 语句

SQL 日期范围拆分

java - HQL - 删除并出现 JOIN 错误

MySQL 忽略删除查询的强制索引,但不忽略等效的选择查询

php - MySql SELECT/DELETE 不适用于特定列

php - 登录时检查哈希密码

mysql - 为什么这个 update-with-join mysql 查询这么慢?

java - @OneToMany 上的多个连接,每个连接都有条件

mysql - SQL : Geeting Order's status timestamp in a nested query