gpt4 book ai didi

SQL Server SELECT 与 JOIN 分页

转载 作者:行者123 更新时间:2023-12-02 19:45:08 27 4
gpt4 key购买 nike

我正在从表中进行选择,并使用多对一关系进行左连接。

我要解决的问题是分页。我只想对 tableA 进行分页。

示例:

SELECT * 
FROM tableA
[WHERE HERE] OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY

这将返回 tableA 的第 0 - 9 行。 完美

现在的问题是当我引入连接时。我仍然想要 tableA 的第 1-10 行,但是当我进行连接时,它会按预期引入额外的行,因为 tableB 将有多个条目与每个 tableA 行连接。所以现在我不再从 tableA 中获取相同的行,我可能只获取前 2 行,但由于连接而总共有 10 行。

SELECT * 
FROM tableA
LEFT JOIN tableB ON foo = bar
[WHERE HERE] OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY

我想返回与连接产生的行数一样多的行,但仅限于表 A 的 0-9(或 10-19)

澄清一下,每个 tableA 行都有多个 tableB 行。我只想根据 tableA 进行选择和分页,但仍然返回 tableB 上所有联接的条目。

最佳答案

在这种情况下您可以使用内部查询

SELECT *
FROM (
SELECT * FROM tableA [WHERE HERE] OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY
) q
JOIN tableB on foo = bar [WHERE HERE]

关于SQL Server SELECT 与 JOIN 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25897533/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com