首页 新闻 会员 周边

LINQ to SQL 或者是SQL问题

0
悬赏园豆:100 [已解决问题] 解决于 2009-05-26 23:28

大概是这样的,有A和B两个人,都往同一个表里插入很多条记录

C现在来检查这个表,他只用看到A和B插入的各自最新的一条记录

就是问C的显示这个语句怎么写.....................只有一个表.有高人知道不,或者请直接告诉我这是不可能的...........

 

问题补充: 补充下,表里面有表示身份的字段~~~ 先不结题,看看还有更牛逼的不, 优先选Gray Zhang的 再说下,如果不仅仅是A B两个人 还有CDEFG................无数的呢
sglicx23的主页 sglicx23 | 初学一级 | 园豆:50
提问于:2009-05-26 00:45
< >
分享
最佳答案
0

首先要在设计上确定两个字段,一个是身份标识,用以区分操作者,一个是时间标识,用以确定插入时间

时间标识可以采用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语法相同

斯克迪亚 | 老鸟四级 |园豆:4124 | 2009-05-26 08:12
其他回答(4)
0

如果你的表中没有某一列说明插入者的身份,那么很抱歉我认为不可能分别查询A和B的

如果你有一列说明了插入者的身份,我们假设这一列名字叫Creator,那么最没脑子的SQL应该是这样的:

select top(1) * from table_name where Creator = 'A'

union

select top(1) * from table_name where Creator = 'B'

Gray Zhang | 园豆:17610 (专家六级) | 2009-05-26 00:53
0

select top(1) * from table_name where Creator <>'c'

Jerry Qian | 园豆:19 (初学一级) | 2009-05-26 09:59
0

属于比较典型的行级权限问题,一般要显示的控制,也微 是在数据记录上打上标志。上面有朋友已经说了,就 不再重复。

小猴子 | 园豆:100 (初学一级) | 2009-05-26 11:11
0

SELECT * FROM [test] temp WHERE [Id]=(
SELECT TOP 1 [Id] FROM [test] WHERE [Creator]=temp.[Creator] ORDER BY [createdate] DESC)

无论有多少人都会只显示每一个人的最新记录。

风海迷沙 | 园豆:4453 (老鸟四级) | 2009-05-26 11:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册