Comment filtrer les sujets par groupe d'utilisateurs

Si votre forum a le plugin Data Explorer installé, vous pourriez écrire des requêtes SQL pour récupérer ces informations de la base de données Discourse. Cette requête tente de récupérer l’ID et le titre des sujets, ainsi que l’ID de l’utilisateur du dernier message du sujet. Elle ne sélectionne que les sujets où le dernier message a été posté par un utilisateur du groupe ‘clients’.

Ceci n’est qu’un exemple.

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 « J'aime »