手动将结果集插入查询

时间:2014-09-09 10:00:59

标签: 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中的数据进行查询吗?

1 个答案:

答案 0 :(得分:0)

这是我提出的解决方案。它工作正常,但我不知道与使用user_id创建tmp表时性能损失是什么 - &gt; manager_id记录,并与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