php - 手动将结果集插入查询

标签 php mysql sql database database-link

我有一个包含管理人员及其依赖用户的数据库。以及其他服务器上的其他数据库,以及有关用户的一些其他信息。

我想查询第二个数据库并获取按经理分组的数据。一种解决方案是循环访问 db2 的结果并计算应用程序中的新结果,但我想尝试从 db1 构建结果集,其中包含有关用户及其管理员的数据以在 db2 上执行查询。类似于下面的伪代码:

SELECT
b.manager_id,
SUM(a.column)
FROM user a
JOIN <resultset_with_assoc_between_user_and_manager> b ON a.user_id = b.manager_id
GROUP BY b.manager_id

这是否可能,而不在 db2 中创建任何新表,只是使用 db1 中的数据进行查询?

最佳答案

这是我制作的解决方案。它工作正常,但我不知道与使用 user_id -> manager_id 记录创建 tmp 表并将它们与 db2_table 连接相比有何性能损失。但正如我所说,db2_table 是 huuuuuuuge

SELECT

CASE
   WHEN a.user_id IN(user_id11, user_id12,user_id13, ...) THEN manager_id1
   WHEN a.user_id IN(user_id21, user_id22,user_id23, ...) THEN manager_id2
   WHEN a.user_id IN(user_id31, user_id32,user_id33, ...) THEN manager_id3
   ...
   ELSE a.user_id
END AS manager,
...

FROM db2_table a

GROUP BY manager

关于php - 手动将结果集插入查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25741766/

相关文章:

php - 有选择地将 WHERE 子句中的用户 ID 应用于条目

php - 将色调分类为最短跨度的算法,例如 `350,354,2,10,15` ? [0-360度]

c# - 使用 linq 在其组之后获取列的总和

sql - 有条件的聚合性能

mysql - SQL LIKE 子句未返回正确的值

php - 如何在 MySQL 中显示重复记录并使用 PHP 合并记录?

php - 利用浏览器缓存

mysql - 如何在 MYSQL 中获取客户的特定名称?

php - Mysql正则表达式使用多个规则来匹配字符串

php - 使用where子句在mysql中按降序获取人员的排名