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 :

Requete 3.x ne fonctionne plus sous 5.x


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Requete 3.x ne fonctionne plus sous 5.x
    Bonjour,

    J'ai une vieille application qui tourne sous du Mysql 3.x
    En en passant sur une version plus récente 5 j'ai une erreur de requête dans une application web :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT m.IdMachine, m.IdUtilisateur, m.IdLabo, m.NomMachine, m.TypeMachine, i.IdInterface, i.NumeroIpInterface, i.NomDNSInterface, pm.IdPriseMurale, pm.IdBaie, pm.PiecePriseMurale, pm.NumeroPriseMurale, po.IdPort, po.Numeroport, c.IdCommutateur, c.NomCommutateur, b.IdBaie, b.NomBaie 
    FROM machine AS m 
    LEFT JOIN interface AS i USING (IdMachine) 
    LEFT OUTER JOIN prise_murale AS pm USING (IdPriseMurale) 
    LEFT OUTER JOIN port AS po USING (IdPriseMurale) 
    LEFT JOIN commutateur AS c USING (IdCommutateur) 
    LEFT JOIN baie AS b USING (IdBaie) 
    WHERE m.IdLabo='10' 
    #1052 - Column 'IdBaie' in from clause is ambiguous
    En cherchant sur le web il semble que le probleme vienne d'ici :

    Join Processing Changes in MySQL 5.0.12.
    Beginning with MySQL 5.0.12, natural joins and joins with USING, including outer join variants, are processed according to the SQL:2003 standard. The goal was to align the syntax and semantics of MySQL with respect to NATURAL JOIN and JOIN ... USING according to SQL:2003. However, these changes in join processing can result in different output columns for some joins. Also, some queries that appeared to work correctly in older versions must be rewritten to comply with the standard.
    N'étant pas un spécialiste du SQL, je voudrais savoir si un de vous pouvez me donner la bonne syntaxe pour cette requete.

    Merci par avance pour votre aide

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Je répond à mon poste.

    J'ai résolu le problème est précisant les critères de jointures :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT m.IdMachine, m.IdUtilisateur, m.IdLabo, m.NomMachine, m.TypeMachine, i.IdInterface, i.NumeroIpInterface, i.NomDNSInterface, pm.IdPriseMurale, pm.IdBaie, pm.PiecePriseMurale, pm.NumeroPriseMurale, po.IdPort, po.Numeroport, c.IdCommutateur, c.NomCommutateur, b.IdBaie, b.NomBaie
    FROM machine AS m
    LEFT JOIN interface AS i
    ON m.IdMachine=i.IdMachine
    LEFT OUTER JOIN prise_murale AS pm
    ON i.IdPriseMurale=pm.IdPriseMurale
    LEFT OUTER JOIN port AS po
    ON pm.IdPriseMurale=po.IdPriseMurale
    LEFT JOIN commutateur AS c
    ON po.IdCommutateur=c.IdCommutateur
    LEFT JOIN baie AS b
    ON c.IdBaie=b.IdBaie
    WHERE m.IdLabo = '10'
    Avant de fermer le sujet, je voudrais savoir si un spécialiste SQL pouvait "valider" que cette requête soit "propre"

    Merci

  3. #3
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Citation Envoyé par galemberti Voir le message
    Avant de fermer le sujet, je voudrais savoir si un spécialiste SQL pouvait "valider" que cette requête soit "propre"
    propre, propre, notion très subjective. Disons que ces LEFT JOIN et LEFT OUTER JOIN mélangés, ça fait désordre, ou tu mets OUTER partout ou tu ne le mets nulle part

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 13/11/2008, 15h47
  2. Mes programmes essentiels ne fonctionnent plus sous Vista
    Par @robase dans le forum Windows Vista
    Réponses: 1
    Dernier message: 11/06/2008, 19h37
  3. Réponses: 3
    Dernier message: 06/11/2007, 09h54
  4. Réponses: 4
    Dernier message: 10/04/2006, 08h28
  5. [Eclipse3]Ctrl H ne fonctionne plus sous la perspective Java
    Par joseph_p dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 30/09/2005, 11h32

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