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 :

Ajouter des champs à une requête après/avant execution.


Sujet :

Requêtes MySQL

  1. #1
    Membre confirmé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Points : 460
    Points
    460
    Par défaut Ajouter des champs à une requête après/avant execution.
    Bonjour,

    J'ai une requête A qui me retourne 2 valeurs.
    Requête A : select champ1, champ2 FROM tableA
    Résultat A: champ1, champ2.

    Seulement j'aimerai pouvoir inverser ligne/colonne. Pour cela, j'utilise UNION qui me donne alors une requête B.

    Requête B :
    select champ1 FROM tableA
    UNION
    select champ2 FROM tableB

    Résultat B
    champ1
    champ2

    Au résultat B, je souhaiterai rajouter une colonne au début qui donne la désignation des valeurs car j'ai ensuite un module qui s'occupe d'afficher selon un graphique choisis, ces valeurs. Mais pour qu'il fonctionne il a besoin d'un tableau Ligne*2.

    Résultat B
    designation1 champ1
    désignation2 champ2

    J'ai naïvement essayé :

    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
    17
    18
    19
    CREATE TABLE T1
    (
     champ1 varchar(50)
    );
     
    CREATE TABLE T2
    (
     champ1 varchar(50)
    );
     
    INSERT INTO T1 ([champ1]) VALUES('designation1');
    INSERT INTO T2 ([champ1]) VALUES('designation2');
     
    SELECT A.champ1, B.champ1 FROM T1 A, tableA B;
    UNION
    SELECT C.champ1, D.champ1 FROM T2 C, tableB D;
     
    DROP TABLE T1;
    DROP TABLE T2;
    Et même si la requête s’exécute sans erreur, pas, d'affichage du résultat.
    La contrainte, c'est que les tables T1 et T2 doivent rester transparentes pour l'utilisateur de la requête et donc, elles ne peuvent être que temporaires pour l’exécution de cette requête.

    Comme pourrais-je m'y prendre pour solutionner ceci ?

    Merci d'avance.
    UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :

  2. #2
    Membre averti Avatar de GyZmoO
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 428
    Points : 301
    Points
    301
    Par défaut
    Bonjour!

    Tes désignations dont tu parles sont "fixes" i.e non variables?

    Tu devrais écrire tes jointures selon la norme, c'est plus clair :

    BAD !
    SELECT A.col1, B.col2
    FROM TABLE_A A, TABLE_B B
    WHERE A.ID = B.ID

    GOOD
    SELECT A.col1, B.col2
    FROM TABLE_A A
    INNER JOIN TABLE_B ON A.ID = B.ID
    D'ailleurs je me rend compte que tu n'as pas de condition de jointure dans ta requête est-ce normal?
    define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 445
    Points : 622
    Points
    622
    Par défaut
    C'est trop simple pour être ce que tu cherches, mais au cas où :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 'designation1' AS Designation, champ1 AS Valeur FROM laTable
    UNION
    SELECT 'designation2', champ2 FROM laTable;

  4. #4
    Membre confirmé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Points : 460
    Points
    460
    Par défaut
    Nan nan, je ne fais pas de jointure. C'était juste une façon dégueulasse d'essayer de mettre les lignes en légende.

    Je vais essayer la 2ème réponse. Je n'ai plus la base sous la main, je testerai demain. Merci bien !
    UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :

  5. #5
    Membre confirmé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par Fred_34 Voir le message
    C'est trop simple pour être ce que tu cherches, mais au cas où :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT 'designation1' AS Designation, champ1 AS Valeur FROM laTable
    UNION
    SELECT 'designation2', champ2 FROM laTable;
    Merci, trop simple ? peut être, mais c'est exactement ce dont j'avais besoin. Merci beaucoup pour votre aide !
    UNE REPONSE UTILE : &|| UN PROBLEME RESOLU :

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

Discussions similaires

  1. Simuler une jointure pour ajouter des champs à une table
    Par Camelia17 dans le forum DataStage
    Réponses: 0
    Dernier message: 28/01/2015, 16h18
  2. [DAO] Access 2002 - ajouter des champs à une clé
    Par helje dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/12/2008, 10h49
  3. [MySQL] Ajouter des champs dans une table à la volée ?
    Par Invité dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/05/2007, 09h05
  4. Ajouter des champ dans une table avec une procedure sp
    Par Abdou1 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/07/2006, 18h32
  5. Ajouter des CHAMPS dans une table via ASP
    Par hysteresis dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 15h39

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