mysql - 在一个mysql sql查询中使用两个数据库

标签 mysql

我想在一个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/

相关文章:

MySQL Join 表,如果不满足条件仍然返回 null

mysql - MySQL:在CONCAT INSERT INTO SELECT的WHERE子句中使用局部变量

mysql - 选定行的 SQL 更新

mysql - 对于表中未出现的行,将行计数返回为 0

mysql - 如何链接两个表

mysql - 带有 apache2/php5 的 Docker 无法连接到主机上的 mysql

mysql - 每个不同列值的自动编号和重置计数

php - 如何使用 PHP password_hash 函数对数据库中的所有密码进行哈希处理

mysql - 我如何从Docker访问数据库?

php - 对 mysql 结果进行排序,使特定 id 排在第一位