PHP Mysql 跨数据库连接

标签 php sql mysql join

假设我在同一台物理服务器上有两个独立的数据库,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/

相关文章:

sql - 从 sql 导出文件更新表中的多行

php - 电子表格 excel writer 9.2

mysql - 用户认证 Facebook

javascript - 从抽奖系统中获取值(value)

php - 从客户端到服务器的安全文件传输

php - array_merge 和 array + array 有什么区别?

sql - 使用存储过程删除记录并获取返回结果给C#

PHP 和 MySQL 通配符?或者我认为

mysql - 如果是日期参数,查询将是什么?

php - 计算两个时间字段之间的差异