我有一个包含管理员及其依赖用户的数据库。而其他服务器上的其他数据库,以及有关用户的其他信息。
我想查询第二个数据库并获取经理分组的数据。对此的一个解决方案是循环遍历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中的数据进行查询吗?
答案 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