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 avec * sauf sur une colonne spécifique [MySQL-5.1]


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Points : 187
    Points
    187
    Par défaut Jointure avec * sauf sur une colonne spécifique
    Bonjour tout le monde,
    Ce matin je galère sur un pb qui me semblait simple au départ mais je ne sais pas, ça coince.
    Je veux faire une jointure avec toutes les colonnes de la table t1 et la colonne C1 de la table t2, j'ai écris la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT t1.* (SAUF ????), t2.C1 FROM table1 t1, table2 t2 WHERE t1.id = 123 AND t2.ident = 456
    Je ne sais pas faire fonctionner ça, pourquoi ?
    Toutes suggestions ont les bienvenues
    D'avance merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,


    que veux dire cela ne fonctionne pas ?


    Ici vous effectuez un produit cartésien, il n'y a pas de jointure à proprement parlé

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Points : 187
    Points
    187
    Par défaut
    Merci pour ta remarque,
    je n'arrive pas à écrire le script pour t1.* SAUF Col…
    Effectivement cela devrait être + compréhensible, par ailleurs en relisant mon sujet j'ai modifié le msg qui était incomplet au départ !!! Grrr Certains jours sont + compliqués que d'autres !

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    t1.* sélectionnera toutes les colonnes de t1.

    Si vous voulez des colonnes spécifique il faudra préciser, colonne par colonne, celles que vous voulez voir sélectionnée.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Points : 187
    Points
    187
    Par défaut
    Ouahou quand il y a + de 150 col et que je veux n'éliminer que 2 ou 3 ?
    Néanmoins merci pour ta réponse
    Et avec NULL y-a-t-il qq à chose à faire j'ai lu qq chose à ce propos sur le Web mais je n'arrive pas à le retrouver

  6. #6
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    En supposant que tu ais une bonne raison de ne pas vouloir remonter une colonne (ie que tu ne peux pas simplement l'ignorer par la suite), tu peux le faire via une requête dynamique.

    Tu construis ta clause SELECT à partir de la table INFORMATION_SCHEMA.COLUMNS en excluant la colonne souhaitée et tu exécutes ensuite ta requête.

    Mais j'ai du mal à voir dans quelle situation cette solution pourrait être plus facile/pratique que de simplement ignorer la colonne par la suite.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Points : 187
    Points
    187
    Par défaut
    Effectivement j'avais fait qq chose de similaire dans un autre projet en mettant des commentaires dans les structures des coll et une requête sur INFORMATION_SCHEMA.COLUMNS avec un test sur le commentaires de chaque col, long et compliqué j'auras voulu éviter cela ! Mais visiblement ce n'est pas possible !
    Pour ton info cette requête permet de ne pas "extraire" les données perso du commercial (salaire, primes adresse perso …)
    Merci pour ta promptitude

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    En alternative vous pouvez créé une vue, ca vous permettra de ne faire le travaille qu'une seule fois.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Points : 187
    Points
    187
    Par défaut
    Je maîtrise très mal cette notion de vue, tu peux me montrer comment faire et m'en démontrer l'intérêt ?

  10. #10
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour
    Accessoirement, je suis étonné de la façon dont vous faites la jointure entre vos deux tables.

    J'ai plutôt l'impression d'un produit cartésien.

    Personnellement, je préfère utiliser la syntaxe "...join... on..."

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT t1.* ,t2.C1
    From t1
    inner join  t2
    on t1.id = t2.refT1
     WHERE t1.id = 123 AND t2.ident = 456
    Pierre

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 414
    Points : 187
    Points
    187
    Par défaut
    Merci pour ta réponse ça fonctionne nickel

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

Discussions similaires

  1. jointure avec résultat sur 3 colonnes
    Par snorky94 dans le forum Requêtes
    Réponses: 22
    Dernier message: 19/10/2012, 09h14
  2. cas d'école : Requête combinée avec test sur une colonne
    Par teuzadur dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 23/06/2011, 14h14
  3. [XL-2003] Macro avec boucle sur une colonne et condition sur une autre
    Par Isabelle86 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/10/2010, 10h31
  4. select distinct, sauf sur une colonne
    Par Myfred dans le forum Langage SQL
    Réponses: 5
    Dernier message: 24/04/2008, 09h40
  5. Jointure avec conditions sur plusieurs colonnes
    Par ben53 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 28/11/2005, 09h27

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