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 d'intersect sous mysql


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 103
    Par défaut problème d'intersect sous mysql
    Bonsoir,

    bon voilà j ai une requête un peu compliquée..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT KIValue, ConditionKI FROM ki,inhibitors, enzyme, organism 
    WHERE InhID="453" AND EnzymeID="21" AND NameO ="Escherichia Coli" 
    AND ki.InhIDKI=inhibitors.InhID AND ki.EnzymeIDKI=enzyme.EnzymeID 
    AND ki.OrgIDKI=organism.OrgID 
    INTERSECT 
    SELECT KIValue, ConditionKI FROM ki,inhibitors, enzyme, organism
    WHERE InhID="453" AND EnzymeID="21" AND NameO = "Saccharomyces cerevisiae" 
    AND ki.InhIDKI=inhibitors.InhID AND ki.EnzymeIDKI=enzyme.EnzymeID AND ki.OrgIDKI=organism.OrgID
    le but c'est juste de rechercher des kivalue pour 2 organismes différents, l'idéal sous sql est un intersect, mais ca n'existe pas sous mysql. et j arrive a trouver des exemples similaires au mien, pour tenter de remplacer ce intersect..

    si quelqu'un pouvait m'aider.. merci!

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 814
    Billets dans le blog
    14
    Par défaut
    Plusieurs choses à corriger...
    1) La syntaxe normalisée des jointures est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FROM tableA
    JOIN tableB ON condition de jointure
    2) On ne met pas les valeurs texte entre guillemets mais entre apostrophes

    3) Avec des alias sur les tables, c'est plus court à écrire

    Ensuite, si je comprends bien, vous cherchez les KIValue, ConditionKI qui sont à la fois pour 'Escherichia Coli' et pour 'Saccharomyces cerevisiae' ?

    L'astuce consiste à prendre l'une ou l'autre valeur, à regrouper les lignes par ce qu'il y a dans le SELECT et à ne garder que les groupements qui ont les deux lignes.

    Au final, ça donnerait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT k.KIValue, k.ConditionKI 
    FROM ki
    INNER JOIN inhibitors i ON ki.InhIDKI = i.InhID
    INNER JOIN enzyme e ON ki.EnzymeIDKI = e.EnzymeID
    INNER JOIN organism o ON ki.OrgIDKI = o.OrgID
    WHERE InhID="453" 
        AND EnzymeID="21" 
        AND (o.NameO ='Escherichia Coli' OR o.NameO = 'Saccharomyces cerevisiae')
    GROUP BY k.KIValue, k.ConditionKI
    HAVING COUNT(*) = 2
    A essayer.
    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
    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 054
    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 054
    Par défaut
    Petite remarque en passant, si les Id sont de type entier (INT), alors il faut retirer les guillemets dans la requête .

    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

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 814
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par ced Voir le message
    Petite remarque en passant, si les Id sont de type entier (INT), alors il faut retirer les guillemets dans la requête .

    ced
    Exact ! Je ne les avais pas vus ceux-là !
    Ah ! Le défaut du copier/coller !
    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
    Juillet 2008
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 103
    Par défaut
    C'est bon j ai repris ma requête et ca marche. merci!

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

Discussions similaires

  1. Problème de Triggers sous Mysql 5
    Par petozak dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 14/08/2006, 10h18
  2. Problème avec select sous MYSQL
    Par Thomad dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/01/2006, 11h26
  3. Problèmes avec INTERSECT sur MYSQL
    Par zarbydigital dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/09/2005, 13h18
  4. Problème de création de table sous MySql
    Par ducamba dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2003, 09h59

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