Я пытаюсь получить список сообщений, 1 таблица - это список всех непрочитанных сообщений, другая - список всех прочитанных сообщений.Я хочу, чтобы непрочитанные сообщения были упорядочены в последний раз, когда они были обновлены, чтобы самое последнее сообщение всегда было вверху.
Я написал следующий запрос, за исключением того, что получаю сообщение об ошибкене мешается с союзом.Я попытался заключить оба оператора в круглые скобки, но это привело к неправильному порядку.
SELECT threads.id AS thread,
updated_at
FROM threads
WHERE threads.id IN (SELECT thread_id
FROM posts
WHERE posts.id IN (SELECT post_id
FROM post_recipients
WHERE status = 1
AND
user_id = 'b1367cad-e1ea-31ba-beb9-2b53559eea17'))
ORDER BY updated_at DESC
UNION
SELECT thread_id AS thread,
updated_at
FROM thread_assignments
WHERE user_id = 'b1367cad-e1ea-31ba-beb9-2b53559eea17'
AND status = 0
AND thread_id NOT IN (SELECT threads.id AS thread
FROM threads
WHERE threads.id IN (SELECT thread_id
FROM posts
WHERE
posts.id IN (SELECT post_id
FROM post_recipients
WHERE status = 1
AND
user_id = 'b1367cad-e1ea-31ba-beb9-2b53559eea17'))
)
ORDER BY updated_at DESC;
, чтобы было ясно, я не хочу, чтобы итоговая таблица, упорядоченная updated_at, могла поставить сообщения о прочтении выше, чем непрочитанное сообщение.,Я хочу, чтобы 2 таблицы были заказаны отдельно, а затем склеены.