假设我在同一台物理服务器上有两个独立的数据库,X 和 Y。
我所有的查询目前都用完了 X。
我发现我在 Y 中有一张表,我希望 X 可以使用它进行 JOINS。
所以...现在我在 X 和 Y 中保留了 X 和 Y 所需的一张表的副本,但是 Y 中的数据不断变化,因此副本很快就会过时。对于这个应用程序并不重要,但对于我现在正在设计的另一个应用程序,这是行不通的。
X 现在只需要读取 Y 中的表。
是否有一种有效的方法来跨两个数据库进行连接?
我更喜欢 mysql 解决方案,而不是在 php 中打开多个数据库连接。
谢谢。
编辑:那么这些行会变成什么呢?:
$conn = mysql_connect('localhost','username','password');
@mysql_select_db('database_name',$conn)
是的..这是一个旧应用程序,因此是 mysql 而不是 mysqli。假设我可以转换它。
EDIT2:所以在我不指定 database_name.table_name
而只指定 table_name
的地方,我得到了所选择的任何内容,并且在我指定的地方指定了 database.table_name
我得到了我想要的……对吗?是的。有效。
EDIT3:与在同一数据库内进行跨数据库连接相比,是否会对性能产生重大影响?没有。看起来一样快。
谢谢大家的回复。
最佳答案
您必须为其他数据库中的表设置别名:
select a.id
, b.foreign_id
from database1.table1 a
join database2.table1 b
on b.foreign_id = a.id
关于PHP Mysql 跨数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1675333/