SQL查询寻呼接收记录
SQL query for paging received records
我想编写一个查询,从另一个 table 接收有关客户及其订单的信息,并以这种方式显示它们:
Customer 1
Customer 1 Order 1
Customer 1 Order 2
Customer 2
Order 1 Customer 2
Customer 3
Order 1 Customer 3
....
而且我想按客户进行寻呼。例如 - 如果我定义每页项目 = 10,我想显示 10 个客户,无论他们有多少订单。
我准备了这个查询,但我认为它不会正常工作,我不知道如何解决这个问题..
var result = db.Page<Customer>(pageNumber, 10, "SELECT c.*, o.* FROM Customers c JOIN Orders o
ON o.Id = c.Id");
您可以使用 dense_rank()
并对其进行过滤:
SELECT c.*, o.*, DENSE_RANK() OVER (ORDER BY c.id) as seqnum
FROM Customers c JOIN
Orders o
ON o.Customer_Id = c.Id;
您需要使用 WHERE
进行过滤,而不是 LIMIT
或 FETCH
或其他。
我想编写一个查询,从另一个 table 接收有关客户及其订单的信息,并以这种方式显示它们:
Customer 1
Customer 1 Order 1
Customer 1 Order 2
Customer 2
Order 1 Customer 2
Customer 3
Order 1 Customer 3
....
而且我想按客户进行寻呼。例如 - 如果我定义每页项目 = 10,我想显示 10 个客户,无论他们有多少订单。
我准备了这个查询,但我认为它不会正常工作,我不知道如何解决这个问题..
var result = db.Page<Customer>(pageNumber, 10, "SELECT c.*, o.* FROM Customers c JOIN Orders o
ON o.Id = c.Id");
您可以使用 dense_rank()
并对其进行过滤:
SELECT c.*, o.*, DENSE_RANK() OVER (ORDER BY c.id) as seqnum
FROM Customers c JOIN
Orders o
ON o.Customer_Id = c.Id;
您需要使用 WHERE
进行过滤,而不是 LIMIT
或 FETCH
或其他。