我想在一个sql查询中使用2个数据库。我将在一个数据库中运行查询,另一个数据库应该通过在表中添加数据库名称前缀来选择,但我想动态选择第二个数据库名称。 例如:
SELECT * FROM db1.contact WHERE id
IN (SELECT contact_id FROM (REPLACE(DATABASE(),1,2)).email);
我怎样才能做到这一点?
最佳答案
您可以尝试执行以下操作:
SELECT * FROM db1.contact WHERE id IN (SELECT contact_id FROM db2.email);
对于第二个服务器:
SELECT * FROM db21.contact WHERE id IN (SELECT contact_id FROM db1.email);
但无法动态选择数据库,因为 SQL 的 DATABASE 部分不支持任何类型的函数(例如 REPLACE、IF 等)
关于mysql - 在一个mysql sql查询中使用两个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17441025/