我有两张桌子。
TableA
TableB
(使用TableA
进行n-1映射)
我的查询是
DECLARE @Offset = 0,
DECLARE @pageSize = 10
SELECT
A.column1, B.Column1
FROM
TableA AS A
LEFT JOIN
TABLEB AS TABLE B
ORDER BY
B.Column2 DESC
OFFSET @Offset ROWS
FETCH NEXT @PageSize ROWS ONLY
我试图从tableA
加入tableB
的数据中获取10行
但查询只返回左连接创建的集合中的10行,但我需要来自table A
的10行数据,因此在左连接集中,行数可能因TableA中的每条记录而异。
如何获得所需的结果?
更新:
我在我的存储过程中使用上述查询,其中@pageSize
将是存储过程的参数。
答案 0 :(得分:2)
使用以下语法:
SELECT * FROM
(SELECT TOP 10 * FROM Table1) ST1
JOIN Table2 ON ST1.Id=Table2.FkToT1
我希望您的查询看起来如下:
SELECT ST1.Col1, T2.Col1 FROM
(
SELECT * FROM Table1
ORDER BY Col1
OFFSET @offset ROWS
FETCH NEXT @page ROWS ONLY
) ST1
JOIN Table2 T2 ON ST1.Id=T2.FkToT1