可以用PHP代码连接两个查询结果吗?
我需要可以用PHP代码连接两个查询结果吗?,php,mysql,sql,sql-server,Php,Mysql,Sql,Sql Server,我需要为我的web应用程序中的报告模块加入两个表(比如用户&订单表) 问题是: User表位于不同的服务器和服务器上 数据库管理系统从顺序表中。从技术上讲,它是一个不同的系统,因此User表位于SQL Server DB上,而Order表位于MySQL DB上 我无法使用SQL Server的链接服务器,因为我的公司策略不允许使用它。因此,我不能用SQL代码直接连接它们。他们希望我使用Web服务而不是链接服务器 来自这些表的JOIN操作的结果有大量行(可能超过10000行,因为数据用于报告)。所
为我的web应用程序中的报告模块加入两个表(比如用户
&订单
表)
问题是:
User
表位于不同的服务器和服务器上
数据库管理系统从顺序
表中。从技术上讲,它是一个不同的系统,因此User
表位于SQL Server DB上,而Order
表位于MySQL DB上
我无法使用SQL Server的链接服务器,因为我的公司策略不允许使用它。因此,我不能用SQL代码直接连接它们。他们希望我使用Web服务而不是链接服务器
来自这些表的JOIN
操作的结果有大量行(可能超过10000行,因为数据用于报告)。所以,我认为使用Web服务映射它们是一件可怕的事情
所以我想到了这个:
我从不同的模型中收集了2个查询结果,并将它们与我的应用程序代码连接起来(我使用的是带有CodeIgniter的PHP):
$userData
包含具有以下列的所有用户实体:
[UserId, Username, Address, PhoneNumber, etc..]
[OrderId, UserId, Date, etc..]
而$orderData
包含具有以下列的所有订单实体:
[UserId, Username, Address, PhoneNumber, etc..]
[OrderId, UserId, Date, etc..]
但是有可能在PHP/CodeIgniter中连接这两个查询结果吗
大量数据的性能如何
我应该按照建议使用Web服务,还是有其他解决方案来实现这一点
提前感谢:)需要考虑的几件事:
您真的需要一次性返回所有用户和订单记录吗
是否确实要返回这两种类型记录的所有行
对于这些报表查询,使用报表模块会更好吗李>
纯SQL语法是否比使用CodeIgniter“Active Record”(在3.0中重命名为Query Builder)来填充更聪明
JOIN
真的那么糟糕吗?它不是一个联合体
,您希望数据相关李>
我建议您限制数据返回,仅选择实际需要的字段,创建一个新的报表模型,以避免试图弄乱您的通用模型,并使用原始SQL执行此操作
如果您试图严格遵守“1表=1模型”和“用户::getAllFoos+控制器处理>报告::getMonthlyOrderStats()”等规则,那么复杂的事情就会变得更加复杂。谢谢您的回答。1.是的,因为我需要将所有报告摘要导出到Excel。2.不,因为我只需要有订单的用户。3.是的,最好有一个单独的模块。4.是的,普通SQL当然会很棒。但是,我无法获得直接SQL,因为该表是在不同的DBM之间分离的。5.不,不是。但问题不在于SQL连接性能本身。问题是如何在没有直接SQL的情况下执行联接?哦。然后映射一个用户ID数组,并遍历所有内容。如果由于不同的服务器是不同的引擎,您无法使用SQL来解决此问题,那么foreaches是您唯一的实际选择。可以从MsSQL数据库读取数据并插入MySQL临时表,然后将其连接到您感兴趣的MySQL表中?哦,是的,似乎有可能。。。我从SQLServer查询中得到一个数组,然后将它插入MySQL表中。我应该为每一行循环并逐个插入还是如何插入?取决于数量。可能最容易循环构建要插入的批(因此一次插入几百行),因为这样效率更高。