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

Requêtes MySQL Discussion :

Requête qui ressort les nombres qui ne sont pas dans un intervalle


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Requête qui ressort les nombres qui ne sont pas dans un intervalle
    Bonjour,

    J'ai une liste de nombres, cette liste va de 1 à 1000 et contient des trous (genre 51,52,54,59,60,...).
    J'aimerais savoir s'il pouvait y avoir une recette qui me permettrait de trouver tous les nombres qui ne sont pas dans la liste.

    Actuellement j'ai 2 tables,
    Table 1 : Contient tous les nombres utilisés
    Table 2 : Contient tous les nombres de 1 à 1000

    et je fait la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select `nombre` 
    from Table 
    2 where `nombre` not in (
        select `nombre` 
        from Table 1
    )
    Ce qui me permet de ressortir les nombres non utilisés.

    Voyez vous un moyen de me simplifier la vie sans passer par 2 tables?
    Dans le genre "requête qui ressort tous les nombre de 1 à 1000, qui ne sont pas dans la table"?

    Cordialement.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 032
    Points : 23 767
    Points
    23 767
    Par défaut
    Bonjour,

    Non, sous MySQL, tu es obligé de passer par 2 tables, dont l'une contient tous les nombres...
    Par contre, tu peux optimiser un peu ta requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT table2.nombre
    FROM table2 
    LEFT JOIN table1 ON table2.nombre = table1.nombre
    WHERE table1.nombre IS NULL
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Arf, c'est bête!
    Merci pour l'optimisation

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/06/2008, 10h20
  2. chercher les éléments d'une table B qui ne sont pas dans la table A
    Par Cupidon dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 11/01/2008, 13h40
  3. Requête union avec group by qui gère les 2 requêtes.
    Par juha dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/10/2007, 09h38
  4. Réponses: 10
    Dernier message: 15/12/2006, 07h34
  5. Réponses: 4
    Dernier message: 02/06/2006, 12h03

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