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 :

jointure mysql 5.0 comment utiliser AS


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Points : 104
    Points
    104
    Par défaut jointure mysql 5.0 comment utiliser AS
    Bonjour,

    Voici une requête au format mysql 5.0, où l'on met les nom de table entre paranthèses. Comment faire pour utiliser le mot-clé AS?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT ID_USER, LOGIN, PASSWORD, L1.LABEL, L2.LABEL FROM (user, profile, center) 
    INNER JOIN label AS L1 ON (L1.ID_LANG = '1' AND user.ID_PROFILE = profile.ID_PROFILE AND profile.ID_LABEL = L1.ID_LABEL) 
    INNER JOIN label AS L2 ON (user.ID_CENTER = center.ID_CENTER AND L2.ID_LANG = '1' AND center.ID_LABEL = L2.ID_LABEL) 
    UNION 
    SELECT ID_USER, LOGIN, PASSWORD, L1.LABEL, L2.LABEL FROM (user AS U2, profile AS P2) 
    INNER JOIN label AS L3 ON (L3.ID_LANG = '1' AND user.ID_PROFILE = profile.ID_PROFILE AND profile.ID_LABEL = L3.ID_LABEL) 
    LEFT OUTER JOIN center AS C2 ON (C2.ID_CENTER IS NULL) 
    LEFT OUTER JOIN label AS L4 ON (L4.ID_LABEL IS NULL) WHERE user.ID_CENTER IS NULL AND ID_USER <> '1' AND user.ID_PROFILE < 2000 ORDER BY ID_USER
    j'ai essayé ceci mais cela ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT ID_USER, LOGIN, PASSWORD, L1.LABEL, L2.LABEL FROM (user AS U1, profile, center) 
    INNER JOIN label AS L1 ON (L1.ID_LANG = '1' AND user.ID_PROFILE = profile.ID_PROFILE AND profile.ID_LABEL = L1.ID_LABEL) 
    INNER JOIN label AS L2 ON (user.ID_CENTER = center.ID_CENTER AND L2.ID_LANG = '1' AND center.ID_LABEL = L2.ID_LABEL) 
    UNION 
    SELECT ID_USER, LOGIN, PASSWORD, L1.LABEL, L2.LABEL FROM (user AS U2, profile AS P2) 
    INNER JOIN label AS L3 ON (L3.ID_LANG = '1' AND user.ID_PROFILE = profile.ID_PROFILE AND profile.ID_LABEL = L3.ID_LABEL) 
    LEFT OUTER JOIN center AS C2 ON (C2.ID_CENTER IS NULL) 
    LEFT OUTER JOIN label AS L4 ON (L4.ID_LABEL IS NULL) WHERE user.ID_CENTER IS NULL AND ID_USER <> '1' AND user.ID_PROFILE < 2000 ORDER BY ID_USER

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    C'est quoi cette syntaxe avec 3 tables entre parenthèses qui sont jointes à d'autres ?
    Et indente ton code c'est illisible !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT a.col1, b.col2
    FROM table1 a
    INNER JOIN table2 b ON a.id = b.id
    WHERE restriction
    ORDER BY ordre

  3. #3
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    en quoi cela ne fonctionne pas?

  4. #4
    Membre régulier
    Inscrit en
    Février 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 220
    Points : 104
    Points
    104
    Par défaut
    Je dois mettre les tables entre '()' pour la compatibilité de la version 5. Ce qui ne marche pas c'est qui est en gras dans l'exemple 2. Il ne reconnait pas le AS. Il me dit alors que la table user est inconnue. Le premier exemple marche parfaitement bien.

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Je ne vois pas, dans la doc MySQL d'obligation de mettre les tables entre parenthèses.
    Et je continue de trouver cette syntaxe bizarre, désolé !

  6. #6
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    salut,

    écris toutes tes jointures de façon normalisée et tu ne seras pas obligée de mettre des parenthèses

Discussions similaires

  1. [VB.NET]comment utiliser Mysql
    Par mouchkar dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/03/2007, 11h48
  2. [C#][Mysql]Comment utiliser plusieurs dataset sur la même connexion
    Par Invité dans le forum Accès aux données
    Réponses: 3
    Dernier message: 05/12/2006, 09h30
  3. [ADO.Net][C#] Comment utiliser Mysql ?
    Par soltani.slim dans le forum Accès aux données
    Réponses: 13
    Dernier message: 31/08/2006, 12h57

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