FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

Vous n'êtes pas identifié(e).

#1 31-12-2020 14:23:09

oli_v_ier
Membre
Inscription : 18-02-2007
Messages : 72

Purger les abonnements aux discussions des membres peu actifs

Bonjour,

Je voudrais supprimer tous les abonnements aux discussions ou aux forum des membres qui ne se sont pas connectés depuis plus d'un an, en lançant une requête sur la BDD.
Mon forum envoie actuellement beaucoup trop d'emails de notification.

Je sais comment sélectionner la liste des membres non connectés depuis plus d'un an :

SELECT * FROM `pun_users` WHERE `last_visit` < 1577836801

mais je ne maîtrise pas assez les requêtes sql pour utiliser le résultat de cette requête pour filtrer les abonnements à supprimer sur les tables pun_topics_subscriptions et pun_forum_subscriptions.

Quelqu'un pourrait m'aider ? Je n'ai pas trouvé de mod qui permette de faire ça.

Dernière modification par oli_v_ier (31-12-2020 14:25:59)

Hors ligne

#2 31-12-2020 16:02:13

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : Purger les abonnements aux discussions des membres peu actifs

Bonjour,

Il faut utiliser les jointures.

SELECT U.id
FROM pun_users AS U
RIGHT JOIN pun_forum_subscriptions AS F
ON F.user_id = U.id
WHERE U.last_visit < 1577836801

Le résultat donnera les id des membres puisque c'est uniquement avec cette id qu'ils sont connus dans les tables pun_topics_subscriptions et pun_forum_subscriptions.

Refaire la même requête avec pun_topics_subscriptions à la place de pun_forum_subscriptions.


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#3 31-12-2020 19:35:02

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : Purger les abonnements aux discussions des membres peu actifs

Bonsoir,

Petit cadeau de fin d'année après avoir cogité un peu plus et essayé.
Pour directement supprimer les abonnements en une seule requête :

DELETE F FROM pun_forum_subscriptions AS F
INNER JOIN pun_users AS U
ON F.user_id = U.id
WHERE U.last_visit < 1577836801

Pour les pun_topics_subscriptions, il suffit simplement de remplacer pun_forum_subscriptions par pun_topics_subscriptions

DELETE F FROM pun_topics_subscriptions AS F
INNER JOIN pun_users AS U
ON F.user_id = U.id
WHERE U.last_visit < 1577836801

Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#4 01-01-2021 09:49:38

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : Purger les abonnements aux discussions des membres peu actifs

Bonjour,

Ce que propose Visman est beaucoup plus beau siffle

DELETE 
FROM `pun_topic_subscriptions` 
WHERE user_id IN (SELECT id FROM `pun_users` WHERE `last_visit` < 1577836801)

Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#5 04-01-2021 00:05:18

oli_v_ier
Membre
Inscription : 18-02-2007
Messages : 72

Re : Purger les abonnements aux discussions des membres peu actifs

L'important c'est que ça fonctionne wink .
Merci Oto ! cool

Hors ligne

Pied de page des forums