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

Langage SQL Discussion :

Alias et Autojointure (gauche?)


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut Alias et Autojointure (gauche?)
    Bonjour,
    je patauge dans les autojointures, ça me paraisait simple pourtant je m'en sors pas.
    j'ai donc une table définie avec un champ parent en FK :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    CREATE TABLE t_catalogue
    (
      id serial NOT NULL,
      parent int4,
      nom varchar(30) NOT NULL,
      public varchar(100),
      duree int2,
      objectif text,
      parties text,
      prerequis text,
      moyens varchar(50),
      prix numeric(6,2),
      contact varchar(40),
      commentaires text,
      CONSTRAINT t_catalogue_pkey PRIMARY KEY (id),
      CONSTRAINT t_catalogue_parent_fkey FOREIGN KEY (parent) REFERENCES t_catalogue (id) ON UPDATE RESTRICT ON DELETE RESTRICT)
    Je veux récupérer tous les enregistrements de ma table, avec une colonne supp qui reprend l'intitulé en clair du parent, cad nom.

    j'ai essayé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 
      tc.idmodulecycle,
      tc.nomcyclemodule,
      tc2.nomcyclemodule as papa
     FROM t_catalogue tc, t_catalogue tc2
     LEFT OUTER JOIN tc2 ON (tc.parent = tc2.idmodulecycle)
    et j'ai comme erreur que la relation "tc" n'existe pas... j'ai pas le droit d'utiliser un alias dans le LEFT JOIN?

    j'ai essayé aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT 
       tc.commentaires ,
       tc.contact ,
       tc.duree ,
       tc.idmodulecycle ,
       tc.moyens ,
       tc.nomcyclemodule ,
       tc.objectif ,
       tc.parent ,
       tc.parties ,
       tc.prerequis ,
       tc.prix ,
       tc2.nomcyclemodule,
       tc.public
     FROM  t_catalogue tc, t_catalogue tc2
     WHERE tc.parent = tc2.idmodulecycle
    mais je ne récupère pas les enregistrements qui n'ont pas de parent

    j'ai essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WHERE tc.parent = tc2.idmodulecycle and tc2.parent is null
    mais ça me fait une sorte de produit cartésien...

    quelqu'un peut-il m'aiguiller?
    merci

  2. #2
    Membre éprouvé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    398
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 398
    Par défaut
    Bonjour,
    c'est un problème de syntaxe sur le join :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Code: 
    SELECT 
      tc.idmodulecycle, 
      tc.nomcyclemodule, 
      tc2.nomcyclemodule as papa 
     FROM t_catalogue tc
     LEFT OUTER JOIN t_catalogue tc2  ON (tc.parent = tc2.idmodulecycle)

  3. #3
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Par défaut Re: Alias et Autojointure (gauche?)
    Citation Envoyé par say
    j'ai essayé ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WHERE tc.parent = tc2.idmodulecycle and tc2.parent is null
    La tu fais bien le lien entre le pere et l'enfant mais ensuite tu demandes à ce que le parent n'est pas lui même de parent. Je ne crois pas que ca correspond.
    Si j'ai bien compris essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE tc.parent = tc2.idmodulecycle or tc.parent is null
    Je peux pas t'aider avec les outer, ... car je n'utilise pas la norme sur ce point (ORACLE : même si maintenant c'est possible)
    Bonne journée

  4. #4
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    un seul mot : GE-NI-AL....
    merci infiniment...c moche j'ai perdu du temps...j'ai pas pensé à ça.

    merci mille fois...
    n'empeche, j'ai honte...bonjour le

  5. #5
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut Re: Alias et Autojointure (gauche?)
    Citation Envoyé par pinocchio
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE tc.parent = tc2.idmodulecycle or tc.parent is null
    Je peux pas t'aider avec les outer, ... car je n'utilise pas la norme sur ce point (ORACLE : même si maintenant c'est possible)
    Bonne journée
    merci mais ça ne fonctionne pas non plus, y'a du mieux et du moins bien, j'avais essayé aussi.

    mais c'est bon maintenant...

    Suis content

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

Discussions similaires

  1. Clic droit/gauche souris
    Par Mouse! dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 30/05/2013, 20h34
  2. [BDE]Création alias
    Par patblt dans le forum Bases de données
    Réponses: 3
    Dernier message: 02/06/2004, 10h07
  3. Popup avec un clic gauche
    Par Jéremy A dans le forum Composants VCL
    Réponses: 7
    Dernier message: 27/02/2003, 22h15
  4. gérer le clic gauche-droite en même temps de la sou
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2002, 22h52
  5. comment creer un alias dynamique avec BDE et ODBC
    Par david33 dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/07/2002, 11h50

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