Requete permetant de trouvé les guid fantome.

Pryou -  
 Pryou -
Bonjour,
J'ai 2 table, la table "comptes" et la tables "personnages"

Dans la table comptes, il y a un champ id (ID : 1,3,100..etc)
Dans la table personnages, il y a donc un champ id pour définir a quel membre appartient le personnages.
(Si l'id du membre est 455, tout les personnages ayant l'id 455 lui appartienne donc)

J'ai donc fait un grand nettoyage des membres inactifs depuis longtemps. le problème c'est que certe les compte sont supprimé mais il reste donc des personnages fantôme.
J'aimerais donc savoir si il existait une requête ou autre qui une fois lancé, liste tout les id des personnages qui ne corresponde a aucun id dans les comptes.

Pour ensuite les supprimé 1 a 1 a la main si il n'y pa pas de requête pour que tout les ID donné soit supprimé.

Merci d'avance ! =D

1 réponse

supernico Messages postés 513 Date d'inscription   Statut Membre Dernière intervention   193
 
Pour sélectionner les lignes :

SELECT FROM personnages LEFT JOIN comptes ON personnages.compte_id=comptes.id WHERE comptes.id IS NULL

Pour supprimer ces lignes (après avoir vérifié que la requête précédente sélectionne bien les personnages fantômes) :

1) récupère la liste des personnages :
SELECT GROUP_CONCAT(personnages.id SEPARATOR ',') FROM personnages LEFT JOIN comptes ON personnages.compte_id=comptes.id WHERE comptes.id IS NULL

2) supprime :
DELETE FROM personnages WHERE id IN (liste récupérée en 1)

Bien sûr sauvegarde ta base de données avant de jouer avec DELETE ;)
0
supernico Messages postés 513 Date d'inscription   Statut Membre Dernière intervention   193
 
tu a réussi alors ?
0
Pryou
 
Je vais tester sa et je te dit ce soir :)
0