Bonjour,
Il peut arriver, suivant les organisations, que l'on se retrouve avec des inscriptions multiples (du même utilisateur) au même cours, via plusieurs méthodes d'inscription différentes. Par exemple, si on utilise l'inscription par fichier plat pour réaliser des inscriptions à des groupes, cela génère une inscription manuelle (dont on a pas forcément besoin si on utilise déjà une autre méthode d'inscription, telle que base de données ou lien méta-cours).
On pourrait dans ce cas vouloir chercher les cours concernés, pour voir l’ampleur du phénomène, puis envisager de supprimer certaines de ces inscriptions en doublon.
Voici une requête qui permet de cibler les cours concernés ayant des inscriptions manuelles en doublon avec d'autres inscriptions (et le nombre concerné) :
SELECT DISTINCT
c.id, c.shortname # Informations du cours , e1.enrol, e1.status, e1.name, e1.roleid # Informations inscriptions manuelles , e2.enrol, e2.status, e2.name, e2.roleid # Informations autres inscriptions , COUNT(DISTINCT(ue1.id)) AS Nb # Nombre de personnes concernées FROM mdl_course AS c JOIN mdl_enrol AS e1 ON e1.courseid = c.id JOIN mdl_enrol AS e2 ON e2.courseid = c.id JOIN mdl_user_enrolments AS ue1 ON ue1.enrolid = e1.id JOIN mdl_user_enrolments AS ue2 ON ue2.enrolid = e2.id JOIN mdl_user AS u ON u.id = ue1.userid AND u.id = ue2.userid WHERE ue1.id != ue2.id AND e1.enrol = 'manual' GROUP BY c.id ORDER BY Nb DESC ;
Il conviendra de s'assurer du (ou des) rôle(s) concerné(s), avant d'envisager un "nettoyage".
Séverin