【问题标题】:Joining a query across servers using Zend_Db and SQL Server使用 Zend_Db 和 SQL Server 跨服务器连接查询
【发布时间】:2023-03-05 23:37:01
【问题描述】:

在 SQL Server 中,有一种用于跨两台服务器连接查询的语法,您可以在其中使用以下内容:

SELECT 
    SUM(StatsTotal) AS ChannelTotal 
FROM [SERVER\DB4_1].DBNAME.dbo.Stats AS Stats

这意味着我可以连接到一台服务器,然后使用 SQL Server 的“链接服务器”功能要求查询在另一台服务器上执行。我的问题是在Zend_Db 中无法使用Zend_Db_Select 可以看到的这个功能。

目前我正在尝试使用以下代码:

$select = $this->db->select();
$select->from(array('Stats' => '[SERVER\DB4_1].DBNAME.dbo.Stats'), array('ChannelTotal' => new Zend_Db_Expr('SUM(StatsTotal)')));
echo $select->assemble();

这给了我以下 SQL 作为响应:

SELECT SUM(StatsTotal) AS "ChannelTotal" FROM "[SERVER\DB4_1]"."DBNAME" AS "Stats"

显然这行不通,那么有没有其他方法可以做到这一点而不必手写这些查询?

【问题讨论】:

  • 您是否尝试过使用'Stats' => new Zend_Db_Expr('[SERVER\DB4_1].DBNAME.dbo.Stats')
  • 啊!太棒了,你能把这个问题作为一个问题让我奖励一些积分吗?
  • 优秀 - 很高兴它现在可以工作了。

标签: php sql-server zend-framework


【解决方案1】:

使用'Stats' => new Zend_Db_Expr('[SERVER\DB4_1].DBNAME.dbo.Stats') 应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2013-10-14
    • 2018-05-29
    • 2014-10-13
    • 1970-01-01
    • 2012-03-04
    相关资源
    最近更新 更多