No sé ni una pizca de SQL… pero ¿sería posible tener una consulta que me muestre los temas en los que he sido mencionado… pero en los que no he respondido después de ser mencionado (imagino que esta parte es complicada, si es que siquiera es posible)?
temas donde el usuario fue mencionado y no ha respondido después de ser mencionado
-- [parámetros]
-- user_id :usuario
WITH menciones AS (
SELECT target_topic_id, target_post_id, created_at
FROM user_actions
WHERE action_type = 7 -- menciones
AND user_id = :usuario
), respuestas AS (
SELECT topic_id, MAX(created_at) created_at
FROM posts
WHERE user_id = :usuario
AND deleted_at IS NULL
AND post_type IN (1, 4) -- regular O susurro
GROUP BY topic_id
)
SELECT DATE(m.created_at) mencionado_en, target_post_id post_id
FROM menciones m
LEFT JOIN respuestas r ON r.topic_id = m.target_topic_id
JOIN topics t ON t.id = m.target_topic_id
WHERE m.created_at > COALESCE(r.created_at, '1900-01-01')
AND t.deleted_at IS NULL
AND NOT t.archived
AND NOT t.closed
ORDER BY m.created_at DESC