使用Rails 3.2。我想创建一个rake任务来检查两个不同的数据库(如果存在同一行):

数据库abc,表shops,列partner_id

1
2
3
4
5


数据库xyz,表shops,列id

1
2
4
5
6


我想将abc.shops.partner_idxyz.shops.id进行比较。在这种情况下,id 3不存在,我将要删除它。

目前,我只是逐个检查abc.shops.partner_id,如果在xyz中找不到,则将其删除。有没有更好的办法?

谢谢。

最佳答案

由于它们位于同一台服务器上,因此可以联接表:

DELETE FROM abc.shops AS a
LEFT JOIN xyz.shops AS x ON a.partner_id = x.id
WHERE x.id IS NULL

关于mysql - 检查行是否存在于其他数据库中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21462353/

10-13 02:09