【问题标题】:Join 2 tables from different databases连接来自不同数据库的 2 个表
【发布时间】:2013-11-11 18:34:13
【问题描述】:

是否可以使用 MSSQL 服务器和 ADODB 连接在 php 中连接来自不同数据库的两个表?

/*Connect DB1*/
$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn->open("PROVIDER=SQLOLEDB;SERVER=SRV;UID=user;PWD=pwd;DATABASE=DB1;");

/*Connect DB1*/
$conn2 = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn2->open("PROVIDER=SQLOLEDB;SERVER=SRV;UID=user;PWD=pwd;DATABASE=DB2;");

我需要对这两个数据库执行 JOIN 查询,如下所示:

select col from DB1.table1 JOIN DB2.table

【问题讨论】:

    标签: php sql sql-server adodb


    【解决方案1】:

    您不需要 2 个连接来执行此操作,只需一个连接即可完成此操作,因为连接用户可以访问两个数据库

    你只需要把数据库名放在表名之前

    [database_name].[dbo].[table_name]

    您可以从给定的示例中做到这一点:

    SELECT a.col FROM [DB1].[dbo].[table1] a
    INNER JOIN [DB2].[dbo].[table] b ON a.col = b.col
    

    【讨论】:

    • 我尝试了您的解决方案,但它引发了异常:致命错误:未捕获的异常 'com_exception' 带有消息...无效的对象名称 'db.dbo.table1'
    • 你在这个数据库上真的有一个名为“db”的数据库或一个名为“table1”的表吗?这就是错误所说的。在您给定的连接字符串中,您只有“db1”和“db2”而不是“db”
    • 显然我改变了这些值。好的...我的参数错了..现在效果很好。谢谢你!
    猜你喜欢
    • 1970-01-01
    • 2019-03-09
    • 2017-10-21
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多