本文介绍了sql使用连接在sql中选择一对多的最大值记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我有3张桌子: - 表1:a(申请人) Id |名称| DOB __________________ 1 | xyz | 12/01/1990 2 | pqr | 06/02/1995 表2:b(课程) Id |课程 ____________ 1 | Btech 2 | Mtech 3 |博士 表3:c a_Id | b_Id |完成年份 _______________________________ 1 | 1 | 2008 1 | 3 | 2015 1 | 2 | 2012 2 | 2 | 2008 2 | 1 | 2006 我需要检索两个申请人使用联接的最高资格 预期结果: 名称|课程|完成年份 ________________________________ xyz |博士学位2015 pqr | Mtech | 2008 我正在使用以下脚本: 选择 * 从 a t1 left 外部 join (选择 * 来自 C 其中年 in ( SELECT MAX(年)年 FROM C GROUP BY a_Id)) as t2 > t1.Id = t2.a_Id left outer join b as t3 on t2 。出价 = t3.Id 但我得到以下结果 实际结果: 名称|课程|完成年份 ________________________________ xyz | Mtech | 2012 pqr | Btech | 2006 请帮助解决方案 I have 3 tables :-Table 1 : a (applicant)Id | Name | DOB__________________1 | xyz | 12/01/19902 | pqr | 06/02/1995Table 2: b (Course)Id | Course____________1 | Btech2 | Mtech3 | PhDTable 3 : ca_Id | b_Id | Year Completed_______________________________1 | 1 | 20081 | 3 | 20151 | 2 | 20122 | 2 | 20082 | 1 | 2006I need to retrieve just the highest qualification of both the applicants using joinsExpected Result : Name | Course | Year Completed________________________________xyz | PhD | 2015pqr | Mtech | 2008I'm using the below script :select *from a as t1left outer join ( select * from C where Year in (SELECT MAX(Year) Year FROM C GROUP BY a_Id )) as t2 on t1.Id = t2.a_Idleft outer join b as t3 on t2.b_Id = t3.Idbut I'm getting the following resultActual Result:Name | Course | Year Completed________________________________xyz |Mtech | 2012pqr |Btech | 2006Please help 解决方案 这篇关于sql使用连接在sql中选择一对多的最大值记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-20 14:09