Я пытаюсь выполнить этот подзапрос в HIVE, но я получаю ошибку, что подзапрос не поддерживается в моей версии для HIVE, к сожалению, мы используем старую версию HIVE.Rewrite Hive IN clause
select col1,col2 from t1 where col1 in (select x from t2 where y = 0)
Тогда я переписал подзапрос, используя левую Semi присоединиться, как это,
select a.col1,a.col2
FROM t1 a LEFT SEMI JOIN t2 b on (a.col1 =b.x)
WHERE b.y = 0
Этот запрос работает нормально, если я не дают где состояние, но его не распознает таблицу Б, если Я пытаюсь использовать столбец b.any, где условие или использовать столбец b.any в предложении select. Выброс данной ошибки -
Error while compiling statement: FAILED: SemanticException [Error 10004]: Line 3:6 Invalid table alias or column reference 'b': (possible column names
Любая помощь очень ценится.
Смотрите это и http://stackoverflow.com/questions/26028767/why-cant-hive-recognize-alias-named-in-select-part –
Почему вы не можете просто написать «t2 «вместо« b ». – Bector
Я пробовал, и он не работает, бросает ту же ошибку. –