我有一个带有 5 个 ID 列的 select 语句。我需要从存储 ID/名称的客户主表中查找并选择相应的客户名称,并提供客户报告。表格列如下: origCustomerID,Tier1PartnerID,Tier2PartnerID,DistributorId,EndCustomerID,productId,OrderTotal,OrderDate
前 5 列是与客户表中的 CustID 列匹配的 ID 列。请注意,并非所有这些列都始终包含给定记录的值,即它们有时可能为空。鉴于 hiveQL 目前的限制,我只能想到以下方式,但这会占用大量时间,并不是最好的方式。您能否建议对此进行任何改进?
Select origCustomerID,a.name,Tier1PartnerID,b.name,Tier2PartnerID,
c.name,DistributorId,d.name,EndCustomerID,e.name,productId,OrderTotal,OrderDate
From Orders O
LEFT OUTER JOIN customers a on o.origCustomerID = a.custid
LEFT OUTER JOIN customers b on o.Tier1PartnerID = a.custid
LEFT OUTER JOIN customers c on o.Tier2PartnerID = a.custid
LEFT OUTER JOIN customers d on o.DistributorId = a.custid
LEFT OUTER JOIN customers e on o.EndCustomerID = a.custid