我有两个表(图书,作者)与 ManyToMany 的关系。 我需要SQL语句来检索带有作者的书籍,按作者/书籍排序。重要的是我必须使用分页(偏移...在sql中获取)来检索它们。 当我连接表时,结果中存在重复(当然)和偏移/提取不能用于此结果的问题之一。结果必须排序的另一个问题(当然不是子页面,而是所有书籍)。
我有一个想法:(它检索按作者姓名排序并包含分页的书籍)
select b.id, b.title, a.name from Books b inner join Books_Authors ba
on ba.bookID = b.id inner join Authors a
on ba.authorID = a.id
where a.name in (select name from Authors order by name offset 9 rows fetch next 3 rows only)
order by a.name
但我认为这不是有效的方式。
答案 0 :(得分:1)
这样的东西?
select * from
(
select tmp1.*, ROW_NUMBER() over(partition by b.title, a.name order by b.id, a.id) rang2
from
(
select a.id, b.id, b.title, a.name, ROW_NUMBER() over(partition by b.title, a.name order by b.id, a.id) rang
from Books b inner join Books_Authors ba on ba.bookID = b.id
inner join Authors a on ba.authorID = a.id
) tmp1 where rang=1
) tmp2
where rang2 between 3 and 9
order by title, name
答案 1 :(得分:-1)
表1
sno exam questions time_duration
1 unit test 1 10
2 mock 1 2 10
3 mock2 5 10
4 mock3 6 6
表2
qid answer user_attempt_option
1 1 1
2 2 3
2 3 4
3 4 1
3 1 2
3 2 3
3 3 1