当前位置: 首页 > 面试题库 >

php sql将来自不同数据库的多个表连接在一起

鲁淇
2023-03-14
问题内容

我有3个数据库,现在我需要将每个数据库中的几个表连接到singel查询中。我该怎么做呢?

这是我的联系:

try {
    $con_options = array(
        PDO::ATTR_EMULATE_PREPARES => false,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,  // _SILENT (pub) || _WARNING || _EXCEPTION  (dev)
    );

    $con_1 = new PDO('mysql:host=localhost; dbname=database_1', 'user_1', 'pass_1', $con_options);
    $con_2 = new PDO('mysql:host=localhost; dbname=database_2', 'user_2', 'pass_2', $con_options);
    $con_3 = new PDO('mysql:host=localhost; dbname=database_3', 'user_3', 'pass_3', $con_options);

} catch (PDOException $err) { 
    //  catch, record/log and do stuff with errors
}

我有3个不同的用户,每个数据库都有一个唯一的密码。一个数据库存储用于facebook应用程序和其他iframe应用程序的应用程序数据。另一个保存所有网店数据,例如产品,订单,客户等,而第三个保存网站结构和内容。

现在; 我想以JOIN某种方式将它们三个一起放在一个查询中。

当我写这个问题时;我得到的一个想法是让另一个“超级”用户可以访问所有三个数据库,并且只是进行regoular多表查询?那是可以接受的解决方案吗?

如果是这样,我是否还要在查询中指定哪个数据库?


问题答案:

您将需要一个有权访问所有三个数据库的用户。

您将通过指定完整的表名将它们连接在一起,如下所示:

SELECT * FROM database_1.logs AS d1 LEFT JOIN database_2.users AS d2 
  ON d1.username = d2.username ORDER BY d1.timestamp DESC LIMIT 10


 类似资料:
  • 是否可以在跨不同服务器的多个数据库之间编写查询? 有可能吗?

  • 问题内容: 我有一个JSF数据表,它有三列,分别是:Work_Type_Desc,Project_Phase和Activity_Desc。这些列来自2个不同的数据库表,这两个表之间的关系是一对多的。 第一个表的名称为Work_Type。它具有1)Work_Type_Cd,2)Work_Type_Desc,3)Created_By_Name,4)Created_DT,5)Updated_By_Nam

  • 问题内容: class Match(Base): tablename = ‘matches’ 我需要编写一个查询,该查询将列和团队表连接在一起,以显示本地和客队的团队信息。 这返回 问题答案: 首先,您的代码不起作用的原因是因为SQLAlchemy不知道您是否要通过via或加入,因此您必须告诉它。此外,您需要加入两次,这使事情变得更加复杂。 使用以下命令可以更轻松地完成此操作: 并且将在相同的查询

  • 从bugu-mongo 2.11版本开始,支持连接到多个数据库。 在前面的示例代码中,我们都只是连接到一个数据库: //默认的数据库连接 BuguConnection conn = BuguFramework.getInstance().createConnection(); conn.setHost("192.168.0.100"); conn.setPort(27017); conn.setU

  • 问题内容: 我有一个使用在不同地理位置的四个数据库的应用程序。所有数据库都包含相同的表,只有数据库名称根据位置而不同。我必须在应用程序中创建一些报告,这些报告使用每个数据库中的数据。从Java应用程序创建那些数据库连接的正确方法是什么,是否有适合我使用的适合此任务的设计模式? 问题答案: 由于您没有任何的标记这个你的问题,,,,我假设你正在处理普通的JDBC。 话虽如此,我建议您有一个DAO层来处

  • 问题内容: 该表包含一个ID列,valueHeading列和一个value列。我想将value列分为两个新列,分别称为valueHeading1和valueHeading2,具体取决于值具有哪种valueHeading类型。 所以我想加入这个选择: 编辑:完全加入 使用此选择: 在各自的ID上。我该怎么做呢? 编辑 以说明我要执行的操作: 原始表格: 新表: 问题答案: 在SQLServer200