У меня есть 4 разные таблицы, в которых хранятся разные транзакции для пользователей, и я хотел бы объединить все транзакции для некоторых конкретных пользователей. Но проблема в том, что все эти 4 таблицы содержат огромное количество данных, поэтому, когда я пытаюсь ОБЪЕДИНИТЬ их все и ПРИСОЕДИНИТЬСЯ к пользователям, вычисления занимают часы. Что я делаю:
SELECT blablabla
FROM transactions1 t1
JOIN users ON (users.id = t1.user_id AND user.state = 1 AND user.friends > 1 AND user.loc = 'Turkey')
UNION
SELECT blablabla
FROM transactions2 t2
JOIN users ON (users.id = t2.user_id AND user.state = 1 AND user.friends > 1 AND user.loc = 'Turkey')
UNION
SELECT blablabla
FROM transactions3 t3
JOIN users ON (users.id = t3.user_id AND user.state = 1 AND user.friends > 1 AND user.loc = 'Turkey')
UNION
SELECT blablabla
FROM transactions4 t4
JOIN users ON (users.id = t4.user_id AND user.state = 1 AND user.friends > 1 AND user.loc = 'Turkey')
ORDER BY date DESC
Проблема в том, что я запускаю JOIN users ON (users.id = t1.user_id AND user.state = 1 AND user.friends > 1 AND user.loc = 'Turkey')
этот фильтр 4 раза, объединяя каждую таблицу транзакций с пользователями.
Как мне улучшить свой запрос, чтобы использовать передовой опыт и повысить эффективность моего запроса?
Спасибо !