【发布时间】:2017-07-15 18:48:15
【问题描述】:
我需要返回分页结果,即来自名为属性的表中的后五个记录。此查询单独使用:
SELECT
Property_ID,
Property_Type,
Address_Line,
Area,
Postcode,
Weekly_Rate
FROM
dbo.Properties
WHERE
Area LIKE '%" + value + "%'
ORDER BY
Property_ID
OFFSET " + (start*end) + " ROWS
FETCH NEXT " + end + " ROWS ONLY"
上面的代码是用C#编写的。
但我还需要 Images 表中引用分页子集中返回的每条记录的第一个 Image ID。
我尝试了 FULL OUTER JOIN 并没有返回预期的结果,可能是因为每个属性有多个图像。
任何解决方案都会很棒!
谢谢
这似乎几乎可以工作,但它返回一个错误:
SELECT
dbo.Properties.Property_ID, Property_Type, dbo.Images_Table.[URL]
FROM
dbo.Properties p
OUTER APPLY
(SELECT TOP 1 i.*
FROM dbo.Images_Table i
WHERE i.Property_ID = p.Property_ID
ORDER BY i.Image_ID) i
WHERE
p.Area LIKE '%po%'
ORDER BY
p.Property_ID
OFFSET 0 ROWS
FETCH NEXT 5 ROWS ONLY
这是返回的错误:
消息 4104,第 16 级,状态 1,第 1 行
无法绑定多部分标识符“dbo.Properties.Property_ID”。消息 4104,第 16 级,状态 1,第 1 行
无法绑定多部分标识符“dbo.Images_Table.URL”。
【问题讨论】:
-
Properties表和Images表有什么关系?表模式会很好看。 -
Property_ID 是 Images 表中的外键
标签: c# sql-server join pagination