Mysql 使用select从其他数据库中删除数据

Mysql 使用select从其他数据库中删除数据,mysql,sql,Mysql,Sql,我想使用“从另一个数据库中选择”从一个数据库中删除数据 delete FROM organization o WHERE o.id IN (select 100 + s.id_status FROM database2.status s) 对于这一个,我如何从第二个数据库中删除这些字段?这很可能是我这方面的疏忽,但我无法指出确切的问题,因为当我用select*from…(选择*from)替换delete from时,它会起作用。是否要从两个表中删除?如果是,请使用联接表单和多表删除 DE

我想使用“从另一个数据库中选择”从一个数据库中删除数据

delete FROM organization o 
WHERE o.id IN 
(select 100 + s.id_status FROM database2.status s) 

对于这一个,我如何从第二个数据库中删除这些字段?这很可能是我这方面的疏忽,但我无法指出确切的问题,因为当我用select*from…(选择*from)替换delete from时,它会起作用。

是否要从两个表中删除?如果是,请使用联接表单和多表删除

DELETE t1.*, t2.*
FROM organization t1
JOIN database2.status t2 ON t1.id = t2.id_status  + 100

如果
组织机构
表格较小,则首选第二种变体。当然,数据库2.status(id\u status)的索引必须存在以进行改进



不,我只想从组织中删除数据,因为状态必须保持不变,因为它用于将数据导入其他表


如果是这样,只需使用
DELETE t1.*
而不是
DELETE t1.*,t2.*

即可,请提供示例数据、所需结果,并清楚解释您想要做的事情。你的意图不清楚。我不确定这是个好主意。数据库应该是隔离的。也许您应该检索所有要删除的ID,然后使用另一个查询进行删除。组织表中的列id与名为status的表中另一个数据库中的id\U status列具有相同的值。如果
o.id
s.id\U status
具有相同的值,那么为什么要将
100
添加到
s.id\U status
列?@GuillaumeF。不,这根本不是真的。有很多原因可以解释为什么您在不同的数据库中有数据,但需要彼此交互!典型的用例是使用一个用于ETL的暂存数据库将数据导入mysql,然后将该数据与您的生产表合并到一个单独的数据库中!不,我只想从组织中删除数据,因为状态必须保持不变,因为它用于将数据导入其他表中。:)@LordM已更新。
DELETE t1.*, t2.*
FROM organization t1
JOIN database2.status t2 ON t1.id - 100 = t2.id_status