Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
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
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
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
Bonjour,
Ce que propose Visman est beaucoup plus beau
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
L'important c'est que ça fonctionne .
Merci Oto !
Hors ligne