三张表联查的结果分页显示的sql语句怎么写?
create table users
(
userid number not null primary key,
username varchar2(20) not null unique,
userpwd varchar2(60) not null
)create table diary_group
(
dgerid number not null primary key,
dgname varchar2(20) not null ,
userid varchar2(20) --外键引用user表的主键
)create table diary
(
diaryid number not null primary key,
diarytitle varchar2(20) not null unique,
diary clob not null,
dgid number --外键引用diary_group表的主键
)
根据用户的userid查出用户的所有日志,然后结果分页显示的sql语句应该怎么写?
create table users
(
userid number not null primary key,
username varchar2(20) not null unique,
userpwd varchar2(60) not null
)create table diary_group
(
dgerid number not null primary key,
dgname varchar2(20) not null ,
userid varchar2(20) --外键引用user表的主键
)create table diary
(
diaryid number not null primary key,
diarytitle varchar2(20) not null unique,
diary clob not null,
dgid number --外键引用diary_group表的主键
)
根据用户的userid查出用户的所有日志,然后结果分页显示的sql语句应该怎么写?
FROM
(SELECT A. * ,
ROWNUM RN
FROM
(
...
--这里面写三张表联立SQL
...
) A
WHERE ROWNUM <= 10
ORDER BY 排序字段 DESC
)
WHERE RN > 0
FROM
(SELECT A. * ,
ROWNUM RN
FROM
(
...
--这里面写三张表联立SQL
...
) A
ORDER BY 排序字段 DESC
)
WHERE RN > 0 and RN < 11
WHERE RN > 0 and RN < 11 这句
其中RN可以根据你的分页情况变化
如果是第2页
则这句改为
WHERE RN > 10 and RN < 21如果知道第几页和每页数量
则可以改为
WHERE RN > num * (page-1) and RN < num * page + 1
其中num是每页数量,page是第几页