|
Дублирование записей 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, запписи из первой таблицы входят в выборку несколько раз. Уникальных ключей в таблицах нет. Как исправить запрос? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2020, 14:08 |
|
|
start [/forum/topic.php?fid=56&msg=40022790&tid=2015008]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
1186ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 233ms |
total: | 1518ms |
0 / 0 |