我有2个表A和B
A
T-Regx
要求是使用id列连接两个表,并且,如果获取的名称值包含另一个具有不同id的记录,则还应将其连接。就像下面的截图一样。
输出:
要求
答案 0 :(得分:0)
我不熟悉HiveQL,但是对于常规SQL,您需要在查询中第二次将表B自身连接起来。
select
b_name.id, b_name.name
from
#table_A a
join #table_B b -- This table gets the "name" value for lookup
on (a.id=b.id)
join #table_B b_name -- This is the table you want to pull your "output" from
on (b.name=b_name.name)
此查询从本质上说,您需要在表B中找到表B中“匹配” ID的值,然后在表B中查找具有该名称值的所有行。>
答案 1 :(得分:0)
您可以多次连接同一张表。因此,在下面的查询中,b1将为您提供A中所有ID的名称,b2通过名称连接在一起,以获取您不在A中的所有其他ID。
select
b2.*
from
A
inner join B b1 on b1.id = A.id
inner join B b2 on b2.name = b1.name