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 :

problème requete non correspondance


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut problème requete non correspondance
    Bonjour à tous,

    Je me permets de poster sur le forum car j'ai un problème avec ma requête de non correspondance sous Mysql qui me renvoi rien quand je l'execute ou me renvoi un Fatal error: Maximum execution time of 30 seconds exceeded .

    La requête prend énormément de temps sous MySQL à s'exécuter alors que sous ACCESS, elle prend même pas quelques secondes.

    en fait, je voudrais afficher les lignes de la table import_o qui ne sont pas contenu dans la table import_m.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT import_o.specnum
    FROM import_o LEFT JOIN import_m ON import_o.specnum = import_m.specnum
    WHERE (((import_m.specnum) Is Null))
    Je ne vois pas où est mon erreur?

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Combien de lignes dans les tables ?

    Les colonnes présentes dans la condition de jointure sont-elles indexées ?

    Supprime les parenthèses inutiles dans le WHERE. Mauvaise habitude d'Access à perdre !

    Sinon tu peux essayer aussi avec NOT EXISTS. En principe, c'est une peu plus performant. Ce qui n'empêche pas d'indexer les colonnes quand même !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT import_o.specnum
    FROM import_o 
    WHERE NOT EXISTS 
    (
    	SELECT *
    	FROM import_m
    	WHERE import_o.specnum = import_m.specnum
    )
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Salut CinePhil,

    content de te lire .

    import_o : 38749 lignes
    import_m : 19303 lignes

    non je n'ai pas indexé mes colonnes .

    Je vais suivre ton conseil et indexer mes colonnes et voir si le temps d’exécution s'améliore.

    Juste une petite question sur l'index, si j'indexe que la colonne specnum est ce que c'est bon ou bien je dois indexer toutes les colonnes des 2 tables ?

    j'avais fais le test également avec NOT EXISTS mais ça pédale aussi

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Jarod51 Voir le message
    Juste une petite question sur l'index, si j'indexe que la colonne specnum est ce que c'est bon ou bien je dois indexer toutes les colonnes des 2 tables ?
    Pour cette requête, indexer specnum dans les deux table sera suffisant.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 137
    Par défaut
    Merci pour ta réponse CinePhil

    Juste une dernière petite question, qui peut paraître bête, peut on indexer une colonne sur une table temporaire ? Je pense faire l'opération de non correspondance en passant par des temporary table.

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Jarod51 Voir le message
    peut on indexer une colonne sur une table temporaire ? Je pense faire l'opération de non correspondance en passant par des temporary table.
    Pas sûr. Essaie.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. requete non correspondance
    Par NELAIN dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/01/2009, 09h48
  2. requete non correspondance
    Par jedijul dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2007, 15h54
  3. Création d'une requête de non correspondance
    Par angélique dans le forum Access
    Réponses: 2
    Dernier message: 18/07/2006, 16h50
  4. Réponses: 1
    Dernier message: 28/06/2006, 13h31
  5. Requete de non-correspondance
    Par nassu dans le forum Access
    Réponses: 2
    Dernier message: 10/05/2006, 19h28

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