检查表中是否存在数据,然后在单独的表上进行比较

时间:2016-03-23 16:34:39

标签: mysql sql

我有两张桌子:玩家和成就。

在玩家表中有玩家姓名字段,在成就表中还有玩家姓名字段。

因此两个表上都有相同的名称。

我清除了一些非活动的玩家并删除了他们的数据。现在问题是,我在成就表上有很多无用的数据,因为我没有使用外键,当我在玩家表中删除他们的数据时,他们在成就表中的数据没有被删除,并且在成就表上有无用的数据

我需要的是,如果在玩家表中不存在行,则会在成就表中删除行。

因此,如果玩家的名字在成就表上,但不在玩家表中,则成就表上的数据将被删除。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

我需要的是,如果在玩家表中不存在行,则会在成就表中删除行。

使用联接的一个版本

delete t1
 from Achivemntes t1
left join
players t2
on t1.id=t2.id
where t2.id is null