У меня есть две таблицы A и B, которые имеют следующую структуру.Как присоединиться к двум таблицам в HIVE.
// Table A
Name Age actualdate no
// Table B
City sdate edate id
Я хочу, чтобы получить все поля из A и B, используя JOIN, где ID = нет и SDATE < = actualdate и EDATE> = actualdate.
Я попытался как показано ниже, используя предложение where, но оно не работает.
select v3.*, t3.* from A v3
JOIN
B t3
where v3.id = t3.no and
v3.sdate <= t3.actualdate and
v3.edate >= t3.actualdate
limit 1;
Использование В статье:
select v3.*, t3.* from A v3
JOIN
B t3
ON (v3.id = t3.no and
v3.sdate <= t3.actualdate and
v3.edate >= t3.actualdate)
limit 1;
К сожалению, улей не поддерживает эквисоединения. Есть ли способ достичь вышеуказанного с помощью объединений?
Какая ошибка вы получаете, когда пытаетесь сделать соединение? –
Когда я использую предложение «ON», я получаю ошибку как: FAILED: Ошибка в семантическом анализе: Линия И левые, и правые псевдонимы, встречающиеся в JOIN 'actualdate'. и когда я использую предложение WHERE, это не ошибка, но я не получаю никакого результата. Но если я удалю часть «и v3.sdate <= t3.actualdate и v3.edate> = t3.actualdate» из предложения «ON», она работает нормально, но без проверки условий. – Ronak