大概是这样的,有A和B两个人,都往同一个表里插入很多条记录
C现在来检查这个表,他只用看到A和B插入的各自最新的一条记录
就是问C的显示这个语句怎么写.....................只有一个表.有高人知道不,或者请直接告诉我这是不可能的...........
首先要在设计上确定两个字段,一个是身份标识,用以区分操作者,一个是时间标识,用以确定插入时间
时间标识可以采用DataTime,也可以采用自增数的ID。
假设“文章”表设计如下:
标题,内容,发布者,发布时间
则获取代码为:
Code
using (var c = new DatabaseEntities())
{
var l = new List<文章>();
foreach (var k in c.文章.GroupBy(f=>f.发布者))
{
l.Add(c.文章.OrderByDescending(f=>f.发布时间).First(f => f.发布者 == k.Key));
}
}
此为Entity Framework下书写的,Linq to SQL语法相同
如果你的表中没有某一列说明插入者的身份,那么很抱歉我认为不可能分别查询A和B的
如果你有一列说明了插入者的身份,我们假设这一列名字叫Creator,那么最没脑子的SQL应该是这样的:
select top(1) * from table_name where Creator = 'A'
union
select top(1) * from table_name where Creator = 'B'
select top(1) * from table_name where Creator <>'c'
属于比较典型的行级权限问题,一般要显示的控制,也微 是在数据记录上打上标志。上面有朋友已经说了,就 不再重复。
SELECT * FROM [test] temp WHERE [Id]=(
SELECT TOP 1 [Id] FROM [test] WHERE [Creator]=temp.[Creator] ORDER BY [createdate] DESC)
无论有多少人都会只显示每一个人的最新记录。