【问题标题】:How to join two tables from two different databases using mysqli query?如何使用 mysqli 查询连接来自两个不同数据库的两个表?
【发布时间】:2021-01-12 22:06:32
【问题描述】:

我有两个来自两个不同数据库的表,我想使用 php 加入它们

你如何制定这个命令:$result = mysqli_query(“使用哪个连接”,$query)?

示例如下:

//database1
$conn1 = mysqli_connect($host1, $user1, $pass1, $db1) or die();
//database2
$conn2 = mysqli_connect($host2, $user2, $pass2, $db2) or die();

$query = "SELECT * FROM database1.table1 JOIN database2.table2 ON database1.table1.column1 =  database2.table2.column2";
$result = mysqli_query($which_connection, $query) or die();
return $result;

【问题讨论】:

标签: php mysql


【解决方案1】:

根据我的经验,最简单的方法是数据库用户对两种数据库模式都具有权限。因此,您可以通过在查询中使用数据库模式名称来实现您所需要的。唯一的事情是你必须非常小心不要忽略它。因此,使用撇号和所有内容,查询最终可能看起来像:

SELECT * FROM `database1`.`table1`
JOIN `database2`.`table2` 
  ON `database1`.`table1`.`column1` = `database2`.`table2`.`column2`

最重要的部分是用户被授予两种模式的权限。

此外,正如 Jose 在下面指出的那样,数据库必须位于同一数据库服务器上。

【讨论】:

  • 两个数据库必须在同一台服务器上。
  • 感谢您的评论,我已将其添加到答案中。
【解决方案2】:

您可以使用此语法来连接两个表

SELECT <...>
FROM A.table1 t1 JOIN B.table2 t2 ON t2.column2 = t1.column1;

A 和 B 是两个不同的数据库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 2018-04-27
    • 2019-11-05
    相关资源
    最近更新 更多