requete pour faire du nettoyage

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requete pour faire du nettoyage

Re: requete pour faire du nettoyage

par moogli » 07 mai 2014, 09:11

Modération :
Puisque ta question est résolue, je l'indique en cliquant sur le bouton "Mettre le sujet en tant que Résolu" pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.

Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert situé en haut de la page à côté du titre, si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

Re: requete pour faire du nettoyage

par yann2084 » 06 mai 2014, 10:23

Bonjour Yann et merci pour ton aide.

Je comprends à présent tout l'intérêt des sous requêtes et des jointures.

J'ai pu supprimer 900 enregistrements , ma base est clean! :D

Un jour arrivera où je pourrais à mon tour aider les débutants.

A bientôt

Yann

Re: requete pour faire du nettoyage

par yann18 » 05 mai 2014, 17:39

bonjour,
brèf tu veux afficher tous les étudiants qui n'ont pas de dossiers.

méthode 1: sous avec sous requête
tu sélectionne tous les étudiants dont les id_etus ne se trouvent pas dans la table dossiers:
SELECT * FROM etudiants e WHERE e.id_etu NOT IN (SELECT id_etu FROM dossiers);
méthode 2: jointure externe en excluant tous id_etu qui ne sont pas vides
SELECT * FROM dossiers d LEFT JOIN etudiants e ON d.id_etu = e.id_etu WHERE d.id_etu IS NULL;

requete pour faire du nettoyage

par yann2084 » 05 mai 2014, 16:38

Bonjour, je débute.
Voici mon problème:

J'ai 2 tables:
- etudiants (id_etu, nom, prenom, etc)
- dossiers (id_dossier, id_etu#, etc)

pour chaque étudiant, j'ai un dossier avec etudiants.id_etu = dossiers.id_ etu (N°etu et N° dossier identiques)

Le problème :

J'ai 300 enregistrements de dossiers et 1200 enregistrements d'étudiants.

Je voudrais donc faire du ménage et selectionner uniquement les étudiants qui n'ont pas de dossier = 900 enregistrements

J'ai beau me creuser la tête mais je bute, je crois que je prends le problème à l'envers. Je voudrais tous les autres enregistrements que les 300 enregistrements :
SELECT etudiants . *
FROM etudiants, dossiers
WHERE etudiants.id_etu = dossiers.id_etu

Merci aux plus expérimentés qui auront la gentillesse de me dépanner.

Yann