如何从数据库中获取带有父记录的最后一个子记录
|
我有两个表的数据库:
Customers (Id PK, LastName)
和
Orders (Id PK, CustomerId FK, ProductName, Price, etc.)
我只想检索客户的最后订单明细以及客户名称。
我使用.NET L2SQL,但我认为它比LINQ问题更多的是SQL问题,因此我在这里尝试了SQL查询:
SELECT [t0].[LastName], (
SELECT [t2].[ProductName]
FROM (
SELECT TOP (1) [t1].[ProductName]
FROM [Orders] AS [t1]
WHERE [t1].[CustomerId] = [t0].[Id]
ORDER BY [t1].[Id] DESC
) AS [t2]
) AS [ProductName], (
SELECT [t4].[Price]
FROM (
SELECT TOP (1) [t3].[Price]
FROM [Orders] AS [t3]
WHERE [t3].[CustomerId] = [t0].[Id]
ORDER BY [t3].[Id] DESC
) AS [t4]
) AS [Price]
FROM [Customers] AS [t0]
问题是Orders有更多的列(30),并且每一列的查询变得越来越大和越来越慢,因为我需要添加下一个子查询。
有什么更好的办法吗?
没有找到相关结果
已邀请:
1 个回复
糖固傻染
及以上:
或这个:
在
中: