运行以下语句:select uuser_id unatural_cust_id uprov_idfrom zq_dwadwa_m_cus_al_cb_user_info uinner join select anatural_cust_id bcust_levelfrom zq_dwadwa_m_cus_al_cb_user_info a left jo
根据报错信息,可以看到以下问题:
- 在union操作中,左边的查询结果有2列,而右边的查询结果有3列,导致类型不匹配。需要保证union操作的两个查询结果的列数一致。
- 在on子句中,引用了t.user_id和t.prov_id,但是在子查询中没有包含这两个列,所以报错"column t.user_id cannot be resolved; Did you mean u.user_id ?"和"column t.prov_id cannot be resolved; Did you mean u.prov_id ?"。需要根据实际需求,修改子查询的结果列。
- 在group by子句中,引用了u.total_fee,但是在select子句中没有包含该列,所以报错"column reference u.total_fee should appear in GROUP BY key"。需要将u.total_fee添加到select子句中。
根据以上问题,可以修改原始语句如下:
select
u.user_id,
u.natural_cust_id,
u.prov_id,
u.total_fee
from zq_dwa.dwa_m_cus_al_cb_user_info u
inner join
(select
a.user_id,
a.natural_cust_id,
a.prov_id
from zq_dwa.dwa_m_cus_al_cb_user_info a
left join zq_dwa.dwa_m_cus_al_list_nat_info b on a.natural_cust_id = b.nature_id
where b.cust_level = '0'
union all
select
a.user_id,
a.natural_cust_id,
a.prov_id
from zq_dwa.dwa_m_cus_al_cb_user_info a
left join zq_dwa.dwa_m_cus_al_list_nat_info b on a.prov_id = b.prov_id and a.natural_cust_id = b.nature_id
where b.cust_level = '1') t
on u.user_id = t.user_id and u.natural_cust_id = t.natural_cust_id and u.prov_id = t.prov_id
group by u.user_id, u.natural_cust_id, u.prov_id, u.total_fee
order by u.total_fee
limit 50;
请注意,根据实际需求,可能还需要根据具体情况做一些其他调整
原文地址: https://www.cveoy.top/t/topic/ianM 著作权归作者所有。请勿转载和采集!