Salut, j’ai créé une requête (en bas) qui affiche le sujet, la catégorie, le nombre de votes d’un sujet, s’il est fermé, quand il a été créé et l’utilisateur qui l’a créé. Si plus d’informations sont nécessaires, n’hésitez pas à me le faire savoir.
J’ai quelques problèmes et questions pour lesquels j’aimerais de l’aide ou des conseils car je suis nouveau en SQL.
Lorsque j’exécute cette requête, le même sujet s’affiche des centaines de fois. Comment puis-je résoudre ce problème ?
Y a-t-il un moyen d’obtenir et d’afficher quand un sujet sera automatiquement fermé ?
Je veux que seuls les sujets de la semaine s’affichent. Mais le date_trunc que j’ai ajouté montre des éléments datant d’un peu plus d’une semaine ?
SELECT
t.id as topic_id,
t.category_id,
dvc.votes_count,
t.closed,
t.created_at,
t.user_id
FROM topics t, discourse_voting_topic_vote_count dvc
WHERE t.closed = true
AND t.category_id = 20
AND dvc.votes_count >= 1
AND t.created_at <= date_trunc('week', current_date)::date
AND t.created_at >= date_trunc('week', current_date)::date - 7
Mon hypothèse concernant (3) est qu’il s’agit d’un problème de fuseau horaire, et/ou qu’il est basé sur la seconde où vous exécutez le script et que vous voulez le minuit précédent ou suivant. (Pas tout à fait sûr de la façon de résoudre l’un ou l’autre de ces problèmes à la volée).
Je ne suis pas sûr que cela aide, mais vous pouvez essayer
Pour savoir quand ils vont fermer, vous devrez ajouter quelque chose à la partie SELECT (que vous pouvez déduire des champs disponibles) et changer FROM comme
FROM topics t, discourse_voting_topic_vote_count dvc, topic_timers tt
et ajouter ceci après WHERE
AND tt.topic_id=t.id
(tout comme celui que vous avez ajouté auparavant).