У меня есть постановка задачи в Apache Phoenix, в которой мне нужно объединить три таблицы для результата.У меня есть три вида таблицы Hbase, схема выглядит следующим образом
Группа таблиц: -
pk |Название |ownerId |данные
Члены таблицы: -
pk |parentId |Email |данные
Таблица userinfo: -
pk |Email |Имя |Фамилия
Теперь я хочу выбрать группы, заголовок которых совпадает с входной строкой, если они не совпадают, и хочу получить группы, члены которых имеют имя, совпадающее с входной строкой.
Я уже пробовал запрос следующим образом: -
select * from Group where pk like 'Prefix_%'
and (TITLE like '%A%'
or (OWNER_ID in
(
select parentId from MEMBERS where EMAIL in
( select distinct(EMAIL) from USER_INFO
where pk like 'PREFIX%' and
( FIRST_NAME like '%A%' or LAST_NAME like '%A%')
)
)
) ) order by TITLE limit 5;
Но это заняло слишком много времени, и я попытался выполнить запрос на соединение слева с аналогичным, но не дать ожидаемого результата.Подскажите пожалуйста как можно это улучшить?