Вставить набор результатов в запрос вручную

У меня есть одна БД с менеджерами и зависимыми пользователями. И другой БД на другом сервере, с некоторой другой информацией о пользователях.

Я хочу запросить вторую БД и получить данные, сгруппированные менеджерами. Одним из решений для этого является циклический просмотр результата из 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 ответ

Решение

Это решение, которое я сделал. Это работает нормально, но я не знаю, каковы потери производительности по сравнению с созданием таблицы tmp с записями user_id -> 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
Другие вопросы по тегам