INNER JOIN таблиц по уникальным значениям поля одной из таблиц
Есть две таблицы - t2 - лог действий клиентов, где ID клиента повторяется по несколько раз. Таблица t1 - статичная пользовательская информация о клиентах, где ID уникален.
Мне необходимо выбрать информацию из t1 по уникальным клиентам, которые фигурируют в t2.
В настоящий момент из базы выгружаю данные таким образом:
select CLIENT_DK, column2, column3, column4 from TABLE1.NAME t1
inner join TABLE2 t2 on t2.CLIENT_ID = t1.CLIENT_DK
Такой способ джойнит информацию о клиентах ко всем соответствующим записям из лога клиентских действий, что загромождает выгрузку. Можно ли сразу облегчить выгрузку, указав уникальность по CLIENT_ID сразу в запросе? Спасибо!
Ответы (1 шт):
Решение на основе подзапроса:
select CLIENT_DK, column2, column3, column4 from TABLE1.NAME t1
inner join (select distinct CLIENT_ID from TABLE2) t2 on t2.CLIENT_ID = t1.CLIENT_DK
Подзапрос предобрабатывает таблицу логов так, чтобы там остались только уникальные ID клиентов.
Также работает решение ниже к комментариях