Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
27.11.2020, 14:08
|
|||
---|---|---|---|
|
|||
Дублирование записей LEFT JOIN |
|||
#18+
СУБД Impala Добрый день. Есть две таблицы: Первая: activity_report - активности пользователей: PK - id пользователя event_time - время события на ПК ... - в этой табличке 5 млн. записей и вторая: v_calls - телефонные звонки пользователя pk - id пользователя begintime, endtime - время начала и окончания телефонного звонка. ... в этой табличке 100 тыс. записей. Надо выбрать все записи из первой таблицы, исключая те, в которых время события на ПК пересекалось по времени с телефонным звонком этого же пользователя. Запрос: SELECT * FROM activity_record AS ar LEFT JOIN v_calls AS vc ON ar.pk=vc.pk AND ar.event_time NOT BETWEEN vc.begintime and vc.endtime возвращает 62 млн записей, т.е. работает некорректно, получается он формирует декартово произведение таблиц по полю pk, запписи из первой таблицы входят в выборку несколько раз. Уникальных ключей в таблицах нет. Как исправить запрос? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=56&tablet=1&tid=2015008]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
1170ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 1274ms |
0 / 0 |