Em có 2 table bên dưới và truy vấn của em
books :
book_id
1
2
3
4
5
6
n
chapters :
chapter_id | book_id | title
1 1 'a'
2 1 'b'
3 2 'c'
4 2 'x'
5 3 'y'
n n 'z'
SELECT
book_id,(
select
json_agg(c2.*)
from (
SELECT
chapter_id
FROM
chapters c
WHERE
c.book_id = b.book_id
order by chapter_id desc
LIMIT 2
) as c2
group by c2.book_id
) as chapters
FROM
books b
kết quả :
book_id | chapters
1 [{1},{2}]
2 [{3},{4}]
3 [{5}]
Vâng đúng như những gì em mong muốn. Tuy nhiên , với table ‘chapters’ em có thử với records hơn 100k rows thì lại là chuyện khác. Cực tốn CPU và chậm . Em thắc mắc không biết truy vấn em có gì sai hoặc không hợp lý chỗ nào xin mọi người giúp đỡ em với ạ!