gpt4 book ai didi

php - 是否可以用 PHP 代码连接两个查询结果?

转载 作者:行者123 更新时间:2023-11-30 22:59:59 26 4
gpt4 key购买 nike

我需要JOIN 2 个表(比方说UserOrder 表)用于我的网络应用程序中的报告模块。

问题是:

  1. User位于不同的服务器上并且不同来自 Order 表的 DBMS。从技术上讲,这是一个不同的系统,因此 User 表位于 SQL Server 数据库中,同时 Order 表位于 MySQL 数据库中。

  2. 我无法使用 SQL Server 的链接服务器,因为我的公司政策不允许这样做。所以,我无法直接使用 SQL 代码JOIN它们。他们希望我使用 Web 服务而不是链接服务器。

  3. 这些表的JOIN操作结果有很多行(可能超过10,000行,因为数据是为了报告)。所以,我认为使用 Web 服务映射它们是一件可怕的事情。

所以我想到了这个:

我从不同的模型中收集了 2 个查询结果并将它们与我的应用程序代码结合起来(我将 PHP 与 CodeIgniter 结合使用):

// First result
$userData = $this->userModel->getAllUser();

// Second result
$orderData = $this->orderModel->getAllOrder();

$userData 包含具有以下列的所有用户实体:

[UserId, Username, Address, PhoneNumber, etc..]

并且 $orderData 包含具有以下列的所有订单实体:

[OrderId, UserId, Date, etc..]

但是否可以在 PHP/CodeIgniter 中加入这两个查询结果?

大数据时性能如何?

我应该只按照建议使用 Web 服务,还是有其他解决方案来实现此目的?

提前致谢:)

最佳答案

一些需要考虑的事情:

  1. 您真的需要一次性返回所有用户和订单记录吗
  2. 你真的想为这两种类型的记录返回所有行吗
  3. 使用报告模块来处理这些报告查询会更好吗?
  4. 纯 SQL 语法是否比尝试使用 CodeIgniter“Active Record”(在 3.0 中重命名为 Query Builder)来填充它更聪明?
  5. JOIN真的那么糟糕吗?它不是 UNION ,您希望数据相关。

我建议您限制数据返回,SELECT只有您实际需要的字段,创建一个新的报告模型以避免试图弄乱您的通用模型并使用原始 SQL 执行此操作。

当您过于努力地坚持“1 个表 = 1 个模型”和“User::getAllFoos + Controller 处理 > Report::getMonthlyOrderStats()”等规则时,复杂的事情会变得更加复杂。

关于php - 是否可以用 PHP 代码连接两个查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24527613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com