SQL一对多特殊查询,取唯一一条

Posted 就是你baby

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL一对多特殊查询,取唯一一条相关的知识,希望对你有一定的参考价值。

转自:https://www.cnblogs.com/New-world/p/3866581.html

SQL一对多特殊查询,取唯一一条

主表:

辅表:

一个app对应多个apk,现在要取上线(Apk_Status最大的)的应用

select * from [dbo].[tbl_APP] as app 
join 

(select * from [dbo].[tbl_Apk] as AA where not exists(select top 1 * from tbl_Apk as BB where AA.Apk_APPId=BB.Apk_APPId and AA.Apk_Status < BB.Apk_Status))

 as apk on app.APP_Id = apk.Apk_APPId

重点是取关联的右表:

select * from [dbo].[tbl_Apk] as AA where not exists(select top 1 * from tbl_Apk as BB where AA.Apk_APPId=BB.Apk_APPId and AA.Apk_Status < BB.Apk_Status)

没看懂这个not exists的逻辑 ~~

以上是关于SQL一对多特殊查询,取唯一一条的主要内容,如果未能解决你的问题,请参考以下文章

sql 一对多的查询

oracle一对多的表数据查询 ,多表显示对应的最后一条数据

主表和子表是一对多,查询主表数据以及子表的某一条数据

sql 怎么取不重复的数据的所有数据

MyBatis关于多表联查 关联关系之一--------一对多(单条sql语句查询)

MyBatis多表联查