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 :

Requête avec nom de champ "variable"


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Pgs
    Pgs est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Par défaut Requête avec nom de champ "variable"
    Bonjour,

    Je cherche à faire une requête qui ressemblerait à ceci :

    select table1.nom, table1.(table2.champselect) as champok from table 1, table2 where...

    Le but est que le choix du champ de la table1 pris en compte dans le select sur la table1 soit dépendant de la valeur d'un champ d'une autre table :
    - si "table2.champselect" est égal à 'adresse1', alors le select retient table1.adresse1
    - si "table2.champselect" est égal à 'adresse2', alors le select retient table1.adresse2
    etc.

    La seule solution que j'ai trouvée est de faire un concat :

    CONCAT(IF(table2.champselect='adresse1',table1.adresse1,''), IF(table2.champselect='adresse2',table1.adresse2,'')) as champok

    Y a t'il une solution plus "propre" ?

    Merci par avance

    Philippe

  2. #2
    Membre chevronné Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Par défaut
    Bonjour,
    Dans le même style, avec un case :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CASE table2.champselect 
      WHEN 'adresse1' THEN table1.adresse1
      WHEN 'adresse2' THEN table1.adresse2
      ELSE NULL
    END
    Le gros inconvénient est le fait de "cabler" les valeurs de table2.champselect.

    Pour une solution plus propre vous pouvez faire du sql dynamique, quel est votre SGBD et comment est appelée la requête ?

  3. #3
    Pgs
    Pgs est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    482
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 482
    Par défaut
    Merci pour l'info.

    Il s'agit d'une requête sur une base mysql lancée par un script php.

    Philippe.

Discussions similaires

  1. Requête avec nom de champ variable
    Par JP.NUAGE dans le forum SQL
    Réponses: 2
    Dernier message: 02/03/2010, 17h52
  2. Réponses: 5
    Dernier message: 10/02/2010, 14h11
  3. [SQL-Server] Problème requête avec nom de champs []
    Par sinople dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/11/2009, 15h17

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