Как я могу добавить еще одну таблицу в эту команду hive?

#hive

#улей

Вопрос:

 dt1=$1
  
desfile="data_$dt1"
 hql="
 select DISTINCT b.mid, b.create_time, d.content from
     (select mid, create_time, to_id, dt from table_1 where dt>=$dt1 and to_id='1042015' ) b
  join
      (select mid, content from table_2 where dt>=$dt1) d
  on(b.mid=d.mid)
 "
  
 hive -e "$hql"> $desfile
  
 

Этот запрос предназначен для получения содержимого из двух таблиц table_1 и table_2, разных полей из разных таблиц. Если я хочу получить еще одно поле из другой таблицы table_3, обусловленное тем же «средним» полем, должен ли я изменить запрос на эту форму ниже:

 hql="
     select DISTINCT a.off_time, b.mid, b.create_time, d.content from
         (select mid, create_time, to_id, dt from table_1 where dt>=$dt1 and to_id='1042015' ) b
      join
          (select mid, content from table_2 where dt>=$dt1) d
      join 
          (select mid, off_time from table_3 where dt>=dt1) a
      on(b.mid=d.mid=a.mid)
     "
 

Ответ №1:

Вы не можете присоединиться ко всем трем таблицам одновременно, но сначала вы должны присоединиться к b и d, а затем присоединиться к a .

 select DISTINCT a.off_time, b.mid, b.create_time, d.content from
         (select mid, create_time, to_id, dt from table_1 where dt>=$dt1 and to_id='1042015') b
      join
          (select mid, content from table_2 where dt>=$dt1) d
      on(b.mid = d.mid)
      join 
          (select mid, off_time from table_3 where dt>=$dt1) a
      on(b.mid = a.mid)