IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 MySQL Discussion :

Trouver les orphelins


Sujet :

MySQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 124
    Par défaut Trouver les orphelins
    Bonjour à tous,

    Soit une tables 'personnes' comprenant entre autres les champs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id, nom, adresse, localite_id
    et une table 'localites' comprenant

    Trouver les personnes qu'on a omis de rattacher à une localité, c'est facile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        SELECT nom, localite 
          FROM personnes 
    LEFT JOIN localites 
              ON personnes.localite_id=localites.id 
         WHERE localite IS NULL;
    Mais inversément, on efface des personnes en oubliant d'effacer la localité si plus aucune personne n'y habitant ne figure dans la table.

    Quelle requête pour retrouver ces localités sans habitants ? Donc les lignes de 'localites' dont le champs 'id' ne figure jamais dans les lignes de 'personnes'

    Merci d'avance,

    G.

  2. #2
    Membre chevronné Avatar de nounetmasque
    Inscrit en
    Janvier 2003
    Messages
    494
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 494
    Par défaut
    Je pense que la fonction inverse devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     SELECT localite_id 
     FROM localites
     LEFT JOIN personnes
     ON localites.localite_id = personnes.localites_id 
     WHERE personnes.localites_id IS NULL;

  3. #3
    Membre éprouvé
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 515
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 515
    Par défaut
    Citation Envoyé par gvdmoort Voir le message
    Bonjour à tous,

    Soit une tables 'personnes' comprenant entre autres les champs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id, nom, adresse, localite_id
    et une table 'localites' comprenant

    Trouver les personnes qu'on a omis de rattacher à une localité, c'est facile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        SELECT nom, localite 
          FROM personnes 
    LEFT JOIN localites 
              ON personnes.localite_id=localites.id 
         WHERE localite IS NULL;
    Mais inversément, on efface des personnes en oubliant d'effacer la localité si plus aucune personne n'y habitant ne figure dans la table.

    Quelle requête pour retrouver ces localités sans habitants ? Donc les lignes de 'localites' dont le champs 'id' ne figure jamais dans les lignes de 'personnes'

    Merci d'avance,

    G.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    IF(SELECT COUNT(*) FROM Personne WHERE idLocalite = @idlocalite) THEN
      DELETE FROM Localite WHERE  idLocalite = @idlocalite
    END IF;
    Si ça te retourne zero c'est qu'il y a pas personne associé à

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. trouver les hotes
    Par tanky dans le forum C++Builder
    Réponses: 14
    Dernier message: 08/05/2007, 13h17
  2. [langage] Trouver les fichiers sans la case
    Par nledez dans le forum Langage
    Réponses: 2
    Dernier message: 22/12/2004, 12h07
  3. Trouver les redirections dans des traces
    Par severine dans le forum Développement
    Réponses: 3
    Dernier message: 21/04/2004, 18h51
  4. [GUI] Ou trouver les standard ?
    Par Braim dans le forum Windows
    Réponses: 5
    Dernier message: 01/10/2003, 08h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo