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 :

id "virtuel" pour une vue


Sujet :

Requêtes MySQL

  1. #1
    agh
    agh est déconnecté
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 51
    Points : 49
    Points
    49
    Par défaut id "virtuel" pour une vue
    Bonjour/Bonsoir à tous,

    Je souhaite créer une vue constituée de plusieurs unions, afin de pouvoir indexer ma base en passant par un outil tiers.

    J'ai une cinquantaine de tables ayant toutes cette structure :

    j'ai créé une vue qui fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    create view vue as
      SELECT id, nom1 AS nom, 1 AS champ_nom FROM table01
        UNION
      SELECT id, nom2 AS nom, 2 AS champ_nom FROM table01
    UNION
      SELECT id, nom1 AS nom, 1 AS champ_nom FROM table02
        UNION
      SELECT id, nom2 AS nom, 2 AS champ_nom FROM table02
    UNION
    ... 
    UNION
      SELECT id, nom1 AS nom, 1 AS champ_nom FROM table50
        UNION
      SELECT id, nom2 AS nom, 2 AS champ_nom FROM table50

    J'obtiens donc en faisant un SELECT sur cette vue la structure suivante :
    Le problème, c'est que l'id ne sera plus un id... il sera forcément au minimum en double.

    Ma question :
    existe t-il un moyen pour créer une sorte d'id virtuel spécifique à ma vue ?
    Je pourrais par exemple avoir quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    id_virtuel, id_reel, nom, champ_nom

    Je vous remercie beaucoup,
    Alexis
    Alexis
    ----------
    Delphi 7 Perso [FR]
    Windows XP Pro [FR]

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2007
    Messages : 50
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    peut-être en faisant comme ça ?!?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
     SELECT CONCAT_WS('_',table01,id,2) AS id_virtuel,id, nom2 AS nom, 2 AS champ_nom FROM table01
    UNION
      SELECT CONCAT_WS('_',table02,id,1) AS id_virtuel,id, nom1 AS nom, 1 AS champ_nom FROM table02
    ...
    Ton identifiant aura donc la forme table01_4_1,table01_4_2,table02_33_1, ... Avec l'avantage que tu auras un lien entre ton id virtuel et la table dont il provient.

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Essaie en t'inspirant de la solution présentée dans la : http://mysql.developpez.com/faq/?pag...otation_lignes

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    agh
    agh est déconnecté
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    Merci beaucoup !
    Les deux solutions sont parfaites !
    La 1ere est celle que j'avais fini par trouver...
    La 2e est encore "plus mieux", je vais m'y pencher

    Merci !
    Alexis
    ----------
    Delphi 7 Perso [FR]
    Windows XP Pro [FR]

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/07/2006, 15h40
  2. problème de code javascript pour une vue 360°
    Par tomguiss dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2006, 22h50

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