У меня есть 4 таблицыИСПОЛЬЗОВАНИЕ предела/смещения в JOIN запросе
учетной запись пользователя
user_id | username | password ---------+----------+----------
таблицы проектов
project_id | project_name | category_id ------------+------------------------------+-------------
A user_projects стола (многая много отношение)
accounts_projects_id | account_id | project_id ----------------------+------------+------------
project_messages стол (проект будет иметь много сообщений)
message_id | project_id |message| username ------------+------------+--------+---------
При входе, я бег запроса, где я выборка числа проектов, пользователь принадлежит и сообщениям для каждый проект, используя приведенный ниже запрос
SELECT account.user_id,account.username,
array_agg(json_build_object('message',project_messages.message,'username',project_messages.username)) AS messages,
project.project_name
FROM account
JOIN accounts_projects ON account.user_id = accounts_projects.account_id
JOIN project_messages ON accounts_projects.project_id = project_messages.project_id
JOIN project ON project.project_id = accounts_projects.project_id
WHERE account.username=$1
GROUP BY project.project_name,account.user_id
это дает мне ниже выход
userid,username, messages (json array object),project_name`
87;"kannaj";"{"{\"message\" : \"saklep\", \"username\" : \"kannaj\"}"}";"Football with Javascript"
87;"kannaj";"{"{\"message\" : \"work\", \"username\" : \"kannaj\"}","{\"message\" : \"you've been down to long in the midnight sea\", \"username\" : \"kannaj\"}","{\"message\" : \"Yeaaaa\", \"username\" : \"house\"}"}";"Machine Learning with Python"
87;"kannaj";"{"{\"message\" : \"holyy DIVVEERRR\", \"username\" : \"kannaj\"}"}";"Beethoven with react"
Есть ли способ, которым я могу использовать функцию LIMIT/OFFSET при получении сообщений из таблицы project_messages?
Использование подзапросов или использовать подмассив как '(array_agg (...))? [3: 5]' – Abelisto
Подмассив бросает синтаксическую ошибку :(.. где я должен поместить подзапрос – Kannaj
@Elad Это ограничивает всю таблицу, не каждая группа. – Abelisto