首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写此LINQ查询的SQL版本?

如何编写此LINQ查询的SQL版本?
EN

Stack Overflow用户
提问于 2010-11-17 19:58:50
回答 2查看 62关注 0票数 0

如:如何将SQL查询限制为最多返回某一项?所示

我有以下表格:

平台

  • PlatformID
  • 名字

产品

  • ProductID
  • 名字

发布版本

  • ID
  • ProductID
  • PlatformID
  • 版本
  • ReleaseDate

releases表存储特定平台的软件产品的每个版本。我想编写一个查询,以返回每个发布表中每个平台的最新版本。也就是说,如果我在平台A、B和C上发布产品XVersion2.0,那么Releases表中将有3条记录:

  • 2010-11-17发布的平台A上的产品X2.0
  • 2010-11-17发布的平台B上的产品X版本2.0
  • 2010-11-17发布的平台C上的产品X2.0

因此,给定产品ID,我如何获得这些信息?我尝试使用组,就像我使用的LINQ解决方案一样,但显然我不能像.NET那样将LINQ转换成SQL。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-17 20:05:17

学究的:

代码语言:javascript
复制
Select
  PR.Name,
  PL.Name,
  REL.Version,
  REL.ReleaseDate
From
  Releases As REL
  Inner Join Products As PR
    On REL.ProductID = PR.ProductID
  Inner Join Platforms As PL
    On REL.PlatformID = PL.PlatformID
Where
  REL.ID = (Select Top 1 Latest.ID
            From Releases As Latest
            Where Latest.PlatformID = REL.PlatformID
              And Latest.ProductID = REL.ProductID
            Order By Latest.ReleaseDate Desc)

也应该有效(假设您从未减少版本):

代码语言:javascript
复制
Select
  PR.Name,
  PL.Name,
  Max(REL.Version),
  Max(REL.ReleaseDate)
From
  Releases As REL
  Inner Join Products As PR
    On REL.ProductID = PR.ProductID
  Inner Join Platforms As PL
    On REL.PlatformID = PL.PlatformID
Group By
  PR.Name,
  PL.Name
票数 2
EN

Stack Overflow用户

发布于 2010-11-17 20:11:33

你知道LINQ的DataContext类有一个测井性质

既然您已经有了LINQ查询,为什么不在窗帘后面窥视呢?:-)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4208591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档