Como filtrar tópicos por grupo de usuários

Se o seu fórum tiver o plugin Data Explorer instalado, você poderá escrever consultas SQL para buscar essas informações no banco de dados do Discourse. Esta consulta tenta buscar o ID e o título dos tópicos, e o ID do usuário da última postagem no tópico. Ela seleciona apenas tópicos onde a última postagem foi feita por um usuário do grupo ‘clients’.

Este é apenas um exemplo.

SELECT 
    t.id AS topic_id, 
    t.title AS topic_title, 
    (SELECT user_id FROM posts WHERE topic_id = t.id ORDER BY created_at DESC LIMIT 1) AS last_post_user_id
FROM 
    topics t
JOIN
    posts p ON p.topic_id = t.id
JOIN 
    group_users gu ON gu.user_id = p.user_id
JOIN 
    groups g ON g.id = gu.group_id
WHERE 
    g.name = 'clients'
GROUP BY 
    t.id
HAVING 
    MAX(p.user_id) = last_post_user_id
ORDER BY 
    MAX(p.created_at) DESC
1 curtida