Linq左关联只取最新的一条数据

学生表
ID NAME
1 A学生
2 B学生
成绩表
ID STUDID GRADE TIME
1 1 9 2017-01-01
2 1 10 2017-02-03
3 2 15 2017-02-03

我想要得到学生表最新的一条记录
NAME GRADE TIME
A学生 10 2017-02-03
B学生 15 2017-02-03

2个回答

        var query = (from student in mdb.sutdent
                     join grade in mdb.grades on student.ID equals grade.STUDID
                     where grade.TIME.HasValue == true && student.ID == "学生id值"
                     select new
                     {
                         student.Name,
                         grade.GRADE,
                         grade.TIME
                     }).OrderByDescending(c => c.TIME).FirstOrDefault();

EF查询类似的数据 按时间排序第一条就是最新的

wangde4587
wangde4587 回复wangde4587: 获取前两条结果不严谨
大约 2 年之前 回复
wangde4587
wangde4587 回复Liu_LY95: 查看ToList()结果,他是有规律的
大约 2 年之前 回复
wangde4587
wangde4587 回复Liu_LY95: .FirstOrDefault();修改为.ToList() 得到的结果前两条就是
大约 2 年之前 回复
wangde4587
wangde4587 回复Liu_LY95: student.ID == "学生id值"修改为( student.ID == "学生Aid值"||student.ID == "学生Bid值")
大约 2 年之前 回复
Liu_LY95
Liu_LY95 这就能得到A对应最新的记录,我要的结果是A-最新记录,B-最新记录的结果集
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Linq左关联查询只取最新的一条数据
rnrn```rn var deviceState = from di in _deviceInfoManager.FindList()rn join ds in _deviceStateManager.FindList(0, a => a.OccurTime >= System.DateTime.Now.AddMinutes(-10), a => a.Time, false) on new tokenID = di.TokenStationId, deviceNo = di.DeviceNo equals new tokenID = ds.TokenStationId, deviceNo = ds.DeviceNo into didsrn from ds in dids.DefaultIfEmpty()rn select new B04DeviceStatern rn DeviceNo=di.DeviceNo,rn DeviceState=ds!=null?ds.DeviceState:(short)0rn ;rn return deviceState;rn```rnrn背景:di设备信息表,存储设备静态信息,ds设备状态表,存储设备状态信息,每1分钟插入一条记录。rn问题:用设备信息表左联设备状态表最近10分钟的记录,存在网络断开,如果左联为空直接给状态等于0的,如果不为空,那么状态就等于最新一条记录的状态。怎么处理取最新的一条记录状态。rnrn表信息:rn设备信息表rnDeviceNo DeviceNamern 1 A设备rn 2 B设备rn rn状态表rnDeviceNo state timern 1 3 10:00rn 1 2 10:01rn 1 1 10:02rn rn希望得到的结果集为rnrnDeviceNo statern 1 1rn 2 0rnrn
LINQ,一对多左联,只取一条数据
AID ANAME n 1 ONEnnBID AID BNAME n 1 1 On 2 1 Tn n 我只要取出 AID BID BNAME 一条数据即可n 1 1 On
左连接的表中有多条数据如何只取一条
表a,有字段id,表b有字段cid,adddate,a表中的id对应b表中的cid,a表左连接b表,现在a中一条数据对应b中多条数据,如何只取b表中adddate最大的一条
oracle取最新一条数据
好几年没用过oracle了,都忘记了。 最近在做一个项目,数据库就是用的oracle,正好有个获取最新一条数据的需求。 在网上参考了他人的sql,放在自己这儿就是不行。下边是他们的sql SELECT * FROM ( SELECT *,ROWNUM rn FROM t ORDER BY date_col DESC ) WHERE rn = 1 刚开始放到自己的库里是会报错的"FROM key...
mysql表关联只取关联表中最近一条数据
表Aid,userId,logTimen表Bid,userId,departmentId,updateTimenn表A为数据记录n表B相当于历史记录表(userId在updateTime时间之前的departmentId)nn现在表A与表B关联 但是只能让表B中符合条件的最近一记录关联上n(也是updateTime在logTime之前并且最近的一条)n我是这么做的nSELECT A.id,B.userId,B.departmentId FROM A INNER JOIN B nON A.userId=B.userId AND A.logTime>B.updateTimen但是这样会将B表中多条符合条件的数据全取出来,而我只想要最近的一条就足够了n表A表B中都可能有多个userId与日期!!n求解
分组数据——取最新一条数据
确实挺有用的,哈哈!!!,试了很多次。 select * from (select row_number() over (partition by cardid order by createdate desc)b, a.* from sev_account a) where b=1 1、上式中的*可以根据自己的需要改成所需要查询的字段; 2、partition by cardid, 是对c...
SQL查询多条只取其中最新的一条数据
首先  查询表fp_studentItem中的studentid=1;有5条数据,我只想要id=163的最新数据 两种方法: 1、SELECT * FROM fp_studentItem where id=( SELECT MAX(id) FROM fp_studentItem where studentid=1)  子查询查询最大的id(不怎么推荐) 2、SELECT * FROM ...
CTE递归只取第一层的一条数据(关键是只取一条数据想不到怎么操作)
[code=sql]rn;with t as (rn select 1 as id, null as pid, value = 1.1rn union all rn select 2 as id, 1 as pid, value = 1.3rn union all rn select 2 as id, 1 as pid, value = 1.0rn union all rn select 2 as id, 1 as pid, value = 2.1rn union all rn select 2 as id, 1 as pid, value = 2.9rn union all rn select 2 as id, 1 as pid, value = 0.9rn union all rn select 7 as id, 2 as pid, value = 2.1rn union all rn select 7 as id, 2 as pid, value = 2.9rn union all rn select 7 as id, 2 as pid, value = 0.9rn rn union allrn select 3 as id, null as pid, value = 2.1rn union all rn select 5 as id, 3 as pid, value = 3.3rn union all rn select 5 as id, 3 as pid, value = 1.0rn union all rn select 5 as id, 3 as pid, value = 9.1rn union all rn select 5 as id, 3 as pid, value = 2.9rn union all rn select 5 as id, 3 as pid, value = 0.9rn)rn,vs as (rn select * from t where pid is nullrn union all rn select a.* from t a inner join vs b on a.pid = b.id where b.value < a.value and b.pid is nullrn)select * from vsrn[/code]rn[img=https://img-bbs.csdn.net/upload/201902/28/1551358162_706775.png][/img]rn[code=sql]rn--RESULTrnid pid valuern--1 NULL 1.1rn--3 NULL 2.1rn--5 3 3.3rn--2 1 1.3rn[/code]rn如题,取截图的结果任意一条数据(图中蓝色背景的1,2,[color=#0000FF]3[/color],4,5,[color=#0000FF]6[/color],7,8),不一定是3,6编号的数据,只要任意一条,因为数据量大,如果全部数据取出来再取任意一条数据太费时间,又不想写游标和分步处理(先临时表再一条条处理),能否用CTE语法一条语句到位?rn
多行数据比较,只取其中一条
各位大哥们,我正在做关于流程的报表,现在问题来了.rn同一张表单在流程中每一关都会有一条记录,我先在想要得到受理人的相关信息.数据如下:rnrn 表单单号 关号 受理人 ……rn 01 0100 Arn 01 0200 Brn 01 0200 Crn 01 1000 Drn 02 0200 Brn 02 1000 Ern 03 0100 E rnrn因为表单还在流程中,尚未结案,所以有的关号信息没有。还有就是表单有多种流程!表单01 和03 是A流程,0100-0200(此关有两个人处理,谁都可以审批,流程往下走)-1000;表单02是B流程,0200-1000。rn现在我想得到0200关的数据,如果没0200关的信息,则取0100关的数据。结果数据如下rn rn 表单单号 关号 受理人 ……rn 01 0200 B/Crn 02 0200 Brn 03 0100 Ernrn希望各位能帮帮我,3KS!rnrn
两条连续相同的数据只取一条
[img=https://img-bbs.csdn.net/upload/201708/15/1502791008_149865.png][/img]rnrn两个连续相同的红框中的单价只取一个,结果希望得到的数据就是取出绿框中的数据。rn谢谢,非常感谢!!!
比较数据,只取符合要求的一条
表staffrnid fenshu xiuxi bumenrn1 80 0 2rn2 80 1 2rn3 90 2 2rn4 60 0 3rnrn要求:1.同一部门(bumen)的只显示一条数据rn 2.取值顺序,如果休息(xiuxi)日大于0的,取分数(fenshu)高的rn 3.如果休息(xiuxi)日小于0,取分数(fenshu)低的rnrn如果只能以上数据,结果会是这样rnrnid fenshu xiuxi bumenrn3 90 2 2rnrn求SQL代码或者PHP代码都可以。
分组取最新一条
select * from (select  row_number() over(partition by vjp   order by id desc ) a  ,e.* from     COOL_TBL_CHAIN_ENVIRON e) a where a.a =1 分组取 第一条 select  row_number() over(partition by
SqlServer_分组并取最新一条数据
分组取最新一条数据 select temp.userId from ( SELECT *, (partition by userId ORDER BY inputTime desc) as rank FROM t_table ) temp where rank = 1 and temp.auditTime is null
oracle 一对多取多方的最新的一条数据
例如如下sql,SELECT * FROM(      SELECT u.*        ,ROW_NUMBER()OVER(PARTITION BY p.user_id ORDER BY p.flush_time desc)RN    FROM STS_LPATROL_APPUSER_T u        left JOIN STS_LPATROL_PHONEDEV_T p ON u.user...
如何取每组最新的一条数据?
id name groupid lastdatetimern1 aaa 001 2007-03-06rn2 bbb 001 2007-03-07rn3 ccc 001 2007-03-05rn4 ddd 002 2007-03-05rn5 eee 002 2007-03-08rnrn--------------------------------------------rn想得到这样的结果rnid name groupid lastdatetimern2 bbb 001 2007-03-07rn5 eee 002 2007-03-08
linq随机取数据
var gg=(from c in db.computer_view orderby System.Guid.NewGuid() where c.distinguish == "bjb" select c).Take(6);rnrn怎么不管用,求指教
删除只关联一条记录的
s_id name rn1 arn2 brn3 arn2 brn4 crn6 trn7 rrn8 trn9 qrn10 mrn10 crn11 grnrn_________________rnrn删除所有name只关联一个s_id记录怎么写?
linq循环取数据
[code=C#]//最小的id rnvar resMin = dc.VM_SYS_Menu.Select(c => c.MenuID ).Min();rn//得到大的idrnvar resMax = dc.VM_SYS_Menu.Select(c => c.MenuID ).Max();rn//最小的idrnint MinID = Convert.ToInt32(resMin);rn//最大的idrnint MaxID = Convert.ToInt32(resMax);rnvar resAll = (from a in dc.VM_SYS_Menu select new a.MenuID );rn想得到所有的MenuID,跟maxid,minid比较,rn如果循环获取到所有的MenuID[/code]rn
关联锁定产品的最新一条
今天查询产品是否被锁定,查询产品表,关联锁定产品表,因为产品可能被多次锁定,或解锁,所以每个产品取最新的一条. 不截图了,下面是部分查询语句: select code,batch,flag from ProLock a where not exists( select * from ProLock where a.ID
如何只取一条记录
[code=SQL]create table #gg(商品ID varchar(10),商品名称 varchar(30),规格 varchar(20),单位 varchar(10))rngorninsert into #ggrnselect '40666','白矾','10g*25','g'rnunion allrnselect '40667','白果','5g*40','g'rnunion allrnselect '40668','白果','10g*25','g'rnunion allrnselect '40668','白果(10g)','g','g'rnunion allrnselect '40669','白花蛇','5g*40','g'rnunion allrnselect '40669','白花蛇(5g)','g','g'[/code]rnrn现在的问题是有的一个商品ID对应多个商品名称。我现在只要每个商品ID取一条记录就行。语句要怎样写呢?rn我要的结果是这样:rn40666 白矾 10g*25 grn40667 白果 5g*40 grn40668 白果 10g*25 grn40669 白花蛇 5g*40 grnrnrnrn
重复数据 怎么只取一条..
[code=sql]rnSELECT pppp.pztait AS 付款方式, Order_detail.Gds_Name AS 商品名称, rn Order_detail.Member_Account AS 用户名, Order_detail.Total_Money AS 总金额, rn Order_detail.Discount, [Order].Goods_Pay AS 物流处理费,rn [Order].Total_Money AS 付款金额, [Order].Receive_Name AS 姓名, rn [Order].Receive_Addr AS 地址, [Order].Receive_Tel AS 电话,rn [Order].Deliver_Date AS 订购时间, [Order].NornFROM pppp INNER JOINrn [Order] ON pppp.id = [Order].Pay_Method INNER JOINrn Order_detail ON [Order].No = Order_detail.Order_Norn rn[/code]rnrn其中 Order_No 有重复rnrnOrder_No Gds_Namern123 产品1crn654 产品2rn123 产品3aaarn123 产品5aaarnrn希望最终结果 只取Order_No 重复数据其中一条 可随机.rn结果为rn654 产品2rn123 产品3aaarnrn
SQL只取一条记录
[code=C#]rnselect PCcode,PCFuName,PCShName,PCWholeName,rnPCType from v_bk_PortCity order by PCWholeNamern结果如下:rnPCcode PCFuName PCShName PCWholeName PCTypern368 AAL 奥勒松 Aalesund Prn651 AAL 奥勒松 Aalesund Crn322 AAR 奥胡斯 Aarhus Prn606 AAR 奥胡斯 Aarhus Crn232 ABR 阿伯丁 Aberdeen Crn256 ABR 阿伯丁 Aberdeen Prn987 AED 阿伯丁 Aberdeen Crn241 ABI Abilene Abilene Crn431 AUH 阿布扎比 Abu Dhabi Prn1294 AUH 阿布扎比 Abu Dhabi Crnrn想要的结果:rnPCcode PCFuName PCShName PCWholeName PCTypern368 AAL 奥勒松 Aalesund Prn322 AAR 奥胡斯 Aarhus Prn232 ABR 阿伯丁 Aberdeen Crn987 AED 阿伯丁 Aberdeen Crn241 ABI Abilene Abilene Crn431 AUH 阿布扎比 Abu Dhabi Prnrn就是只要PCFuName PCShName 相同的只取一条记录rn[/code]
只取最后一条记录
共有三条记录,页面上也打印了三条记录,但是打印的是最后一条记录
取表中,最新的一条数据该这么取?
如表test中有字段 name ,b(时间),crn有如下数据:rnname b crn1 20050102 12rn2 20060203 23rn1 20070312 32rnrn现在想取出name所对应的时间最新的数据,即rn2 20060203 23rn1 20070312 32rnrn该怎么取?rn
左关联
什么是左关联?rn
求一条取最新一条记录的sql
[img=https://img-bbs.csdn.net/upload/201906/21/1561101065_330787.png][/img]rnrn我现在有这样一张表rnrn我想取同一天里面,时间最新的一条记录rnrn这一条SQL怎么写
MySQL之分组取最新一条
SELECT v1.* FROM version v1 LEFT JOIN version v2 ON (v1.channel = v2.channel AND v1.id &lt; v2.id) WHERE v2.id is NULL and v1.channel='default'
group by 取每组最新的一条
单表操作 select mac(a),b,max(time) from test desc group by b; 多表关联group by 取每组最新一条 select max(a.b_id),max(a.title), max(t.name), max(t.price) from a inner join (select * from b order by id, price...
如何取最新的一条记录
如表:tablearnrn卡号 提取时间      提取点数 剩余点数    rn1001 2010-9-6-12:00:00  1000    2000rn1001 2010-9-8-14:00:00  -500    1700rn1001 2010-9-8-14:30:00  200     1500rn1001 2010-9-7-12:00:00  800     1200rn1002 2010-9-7-12:00:00  1000    2000 rn1002 2010-9-8-12:00:00  500     1500 rn1003 2010-9-9-12:00:00  1000    2000rnrn对于1001来说,要取id=1的记录,要是最新的一条记录行(而不是时间),因为表还有很多其它字段值。rnrn注:剩余点数不用于排序,因为最近剩余点数不一定是最小的。rnrn结果参考:rn1001 2010-9-8-14:30:00  200     1500rn1002 2010-9-8-12:00:00  500     1500 rn1003 2010-9-9-12:00:00  1000    2000rnrn语句如何写?rn
ORACLE 取一条数据
问题是这样的,我的表中现在有100条数据,我需要取第50条数据,现在只能取得第一条是比较有效的rn用rownum=1;rn但是如果要取得中间的怎么弄,不能增加栏位。求高人指导
DiscuzX2 取一条数据
  方法:DB::fetch_first();       if($_GET['username']) { $member = DB::fetch_first(&quot;SELECT uid FROM &quot;.DB::table('common_member').&quot; WHERE username='$_GET[username]' LIMIT 1&quot;); if(empty($member)) ...
只取目录数据
\\192.168.0.2\\test\1.mdbrn这个串如何取得\\192.168.0.2\\test,只取目录
MySQL的左连接查询,只取出最大的一条数据
今天有个需求,是通过两张表进行查询。一对多的关系。通过一个主键,取出其中的一条。 开始以为还好,直接用用了left join on进行查询。却发现了问题所在。 其他的好弄。 开始的写法借鉴这篇博客: https://bbs.csdn.net/topics/350134616?tdsourcetag=s_pcqq_aiomsg 没能解决问题,因为取出的数据中不是我想要的最新的,而是最小的ID的那个...
MYSQL GROUP BY查询,结果只取最新一条记录
mysql 用 group by 查询时,会自动保留   对应组 ‘最先搜索出来的数据’,但这时数据可能不是最新的 如何设置保留 对应组‘最后搜索出来的数据’ 呢?详见代码     对于mysql 5.5版本 select * from ( select * from table_name order by create_time desc ) as t group ...
sql 多组条数据取每组最新的一条数据
问:数据库一张表中有不同公司不同时间发来的数据,怎样取每个公司最新的那条数据呢? 答:使用分析函数row_number() over (partiion by ... order by ...)来进行分组编号,然后取分组标号值为1的记录即可。目前主流的数据库都有支持分析函数。 其中,partition by 是指定按哪些字段进行分组,这些字段值相同的记录将在一起编号;order by则是指定在...
sql 多组条数据取最新的一条数据
数据如下图 ,id1即user_id 字段有多组数据,我们只需要每个 user_id 的最新一条数据 方式:ROW_NUMBER() OVER 具体是 使用 – ROW_NUMBER() OVER ( PARTITION BY tlt.user_id order by tlt.handle_time desc) rowNum 来区分,从而获取最新数据 具体实现 SELECT *...
关于LINQ取数据的疑问
大家好。LINQ或者是4.0推出的实体模型都是实现了ORM对应。我想问下执行的机制,是先取出数据再查询呢还是把LINQ语句转成了查询语句再执行。比如rn[code=C#]rnpublic IQueryable GetAll()rnrnreturn db.articles;rnrn[/code]rn全部数据取出再操作未免效率低了,比如还有where条件。应该是先生成SQL语句再执行吧?
数据库时间DATE 取最新的一条,取最老的一条
数据升序降序都是从上向下看。而且,是按照字典序 比较大小, 比如 1993年  小于 1994 年,2017年小于2018年 2017-09-18 小于 2017-09-19,等等,所以说越旧越小,越新越大    demo 1   升序   demo 2 降序 demo3 取出年代最久的 一条, 逻辑为 升序取第一条 demo4 : 取最新的一条:  ...
linq实现取List中每个分类的一条随机数据
比如 :集合中有 a,b,c,d四个分类,每个分类有n条数据,每次随机取4条数据,每个分类一条,用linq怎么实现呢?
如何用LINQ只查询一条记录?
下面这段代码的目的为查询满足条件的记录,并返回它。rn如果有多条满足,只返回第一条;如果没有满足条件的记录,则返新创建的一个MSG_DESC对象。rn现在的问题是当执行msgDesc.Count()时,就需要查询出所有的结果。这样势必会造成效率低下,因为我只需要第一条记录就可以了。rn请问该如何做?rnrn[code=C#] var msgDesc = from item in _MsgListrn where item.MD_TABLE.Equals("tableset") && item.MD_FIELD.Equals("ID") && item.MD_VALUE.Equals(_id.ToString())rn select item;rn if (msgDesc.Count() == 0)rn return new MSG_DESC();rn elsern return msgDesc.First();[/code]
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池