有2张桌子。表a和b。 A包含msisdn,firstname,secondname,lastname,regdate(注册数据)。表b也有相同的字段。 msisdn X在表A和表B中,有两个不同的regdate。我需要查询两个表并获得具有最近regdate的结果。
如表中的msisdn X regdate是01 / APR / 2016而表B中的X regdate是01 / AUG / 2016,当我查询时我应该从B得到X的结果,因为它具有最新的regdate。 / p>
感谢
答案 0 :(得分:0)
尝试:
SELECT msisdn, max(regdate)
FROM (SELECT msisdn, regdate
FROM tablea
UNION
SELECT msisdn, regdate
FROM tableb)
group by msisdn;
答案 1 :(得分:0)
如果您想要完整的记录:
select ab.*
from (select ab.*,
row_number() over (partition by msisdn order by regdate desc) as seqnum
from ((select a.*
from tablea a
) union all
(select b.*
from tableb b
)
) ab
) ab
where seqnum = 1;