Вот еще один способ сделать это, используя цикл while.
teaherList = [{teacherID:1,teacherName:"john"},{teacherID:2,teacherName:"joe"},{teacherID:3,teacherName:"jill"},{teacherID:1,teacherName:"john"},{teacherID:2,teacherName:"joe"},{teacherID:3,teacherName:"jill"},{teacherID:1,teacherName:"john"},{teacherID:2,teacherName:"joe"},{teacherID:3,teacherName:"jill"}];
const calculateFrequencies = ({ input, output = Object.create(null), id, name,
start: i = 0, end = input.length }) => {
while(i < end && ({ teacherID: id, teacherName: name } = input[i++]))
++(output[id] || (output[id] = { id, name, count: 0 })).count;
return Object.values(output);
}
console.log(calculateFrequencies({ input: teaherList }));
Ваш пользователь root
должен иметь доступ к обеим базам данных, поэтому вам не нужно второе соединение. Если этого не произойдет, создайте пользователя, который это сделает, это упростит вашу жизнь. Затем в запросах вы можете просто добавить имена таблиц к имени базы данных, например:
SELECT *
FROM etrack.table1 t1
JOIN gs.table2 t2 ON t2.etrack_id = t1.id