我需要根据行号来获取数据,例如:如果我传递了ROW_NUM=2,它应该只获取第二行数据。有没有人能帮我做个MYSQL查询。我试着用ROW_NUMBER(),但不起作用
Select arh.ROUTE_NUM,ard.ACTIVE_ROUTE_DETAILS_ID,ROUTE_NUM
from HEADER as arh right join DETAILS ard on HEADER_ID =
ard.HEADER_ID where arh.INFOPRO_DIV IN (050) and arh.ROUTE_DATE = '2020-11-25'

发布于 2020-11-27 21:47:05
SQL表格表示无序集合。因此,要定义第二行,您需要一个ORDER BY。在MySQL中,执行此操作的规范方法是使用LIMIT/OFFSET
select arh.ROUTE_NUM, ard.ACTIVE_ROUTE_DETAILS_ID, ROUTE_NUM
from HEADER arh join
DETAILS ard
on HEADER_ID = ard.HEADER_ID
where arh.INFOPRO_DIV IN (050) and
arh.ROUTE_DATE = '2020-11-25'
order by arh.ROUTE_NUM, ard.ACTIVE_ROUTE_DETAILS_ID
limit 1 offset 1; -- "offset 1" corresponds to the second row注意:与RIGHT JOIN相比,大多数人更喜欢LEFT JOIN。也就是说,WHERE子句无论如何都会将外连接转换为内连接,所以我认为常规连接也可以。此外,从headers到details的连接也是有意义的。
https://stackoverflow.com/questions/65038405
复制相似问题