Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1387 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Alias multiples en SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Alias multiples en SQL

n°1358234
buzzkaido
Posté le 03-05-2006 à 08:23:33  profilanswer
 

Bonjour !
 
J'ai cherché ailleurs, mais pas trouvé...
 
Je voudrais renommer les champs d'une table en utilisant des alias, du style :
 
SELECT
  utilisateurs.id AS personne_id
FROM
  utilisateurs
WHERE
  marequete
 
Mais je voudrais renommer TOUS les champs : du style
 
SELECT
  utilisateurs.* AS personne_*
FROM
  utilisateurs
WHERE
  marequete
 
et recuperer
   personne_id
   personne_nom
   personne_prenom
   ......
 
Pourquoi ? paske pour ce que j'en fais après, c'est plus pratique d'avoir les champs renommés !!!
 
Une requete du genre
 
SELECT
  utilisateurs.id         AS personne_id
  utilisateurs.nom      AS personne_nom
  utilisateurs.prenom  AS personne_prenom
  .........
FROM
  utilisateurs
WHERE
  marequete
 
est à proscrire, paske si je rajoute un champ plus tard, je veux pas avoir à recoder toutes mes requetes....
 
Kkun aurait une piste ?
 
Merchi !

mood
Publicité
Posté le 03-05-2006 à 08:23:33  profilanswer
 

n°1358239
sircam
I Like Trains
Posté le 03-05-2006 à 08:33:35  profilanswer
 

Citation :

est à proscrire, paske si je rajoute un champ plus tard, je veux pas avoir à recoder toutes mes requetes...


Et si tu ajoutes plusieurs champs, dont certains contiennent une quantité de données importantes, d'autres n'ayant pas de signification fonctionnelle, tu vas ralentir tes queries à mort, avec ce SELECT *. Si tu en tires un rapport, tu devras peut-être aussi le remettre en page.
 
Sinon, tu peux aussi conserver ton SELECT * mais justement renommer les champs par après, puisqu'il y a un traitement postérieur ?
 

Citation :

Kkun


Qqn, ça marche aussi bien, et ça fait moins kk. [:pingouino]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1358240
buzzkaido
Posté le 03-05-2006 à 08:43:09  profilanswer
 

Pour le ralentissement, je ne m'en fait pas, je rajouterais/supprimerais pas bcp de champs, avec pas bcp de données...
 
Et sur cette partie, la vitesse n'est pas primordiale...
 
Renommer les champs après...
 
Ben nom, paske pour le traitement posterieur, j'ai besoin des champs renommés.
 
En fait, le but final est de selectionners plusieurs utilisateurs à la fois :
 
SELECT
utilisateurs_1.* AS personne_1_*,
utilisateurs_2.* AS personne_2_*
FROM
utilisateurs AS utilisateurs_1,
utilisateurs AS utilisateurs_2
WHERE
kkchose
 
 
 
Et qqun, ça fait QQ... chacun ses choix !  :pt1cable:

n°1358264
sircam
I Like Trains
Posté le 03-05-2006 à 09:22:02  profilanswer
 

Attends, là, il y a qq chose qui ne va pas, avec ton select ? :heink:
 
Tu fais un produit cartésien pour chaque utilisateur ??? WTH ? [:pingouino]
 
KK, QQ... Sauf que la deuxième option est correcte en Français. ;-)


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1358278
buzzkaido
Posté le 03-05-2006 à 09:30:44  profilanswer
 

Nan, tout va bien...
 
Ce n'est pas la requete que j'utilise en realite...
 
Je selectionne dans des tables differentes, et plein d'autres choses
 
C'est juste pour 2-3 requetes assez complexes...
 
Je cherche surtout à "aliassé" tous les champs d'une table pour me simplifier la vie...
 
Pour le produit cartésien... non non, mais des sommes, des moyennes et des concatenations (qui sont "aliassé" à part) et je voudrais aussi tous les champs de chaque table, avec un alias, pour les recuperer facilement separement...
 
 
QQ, KK... la deuxieme option est korekte en francais...
 
Et pour une couette ? tu mets un Q ou un K ?
 
Paske si tu met un P, ça fait Pouette et c le bruit d'un P qui sort du Q (peut-etre en laissant une trace de KK...)
 
Désolé, c'est pas fin du tout, mais il est tôt !  :pt1cable:  :sleep:  :pt1cable:

n°1358283
darkfrost
Posté le 03-05-2006 à 09:34:23  profilanswer
 

En SQL standard je ne vois pas de solution. Sinon il faut que tu construise dynamiquement ta requête en interrogeant la table (selon ton SGBD) qui contient le nom des colonnes de tes tables (de préférence avec le langage procédurale du SGBD si il en a un).
 
 

n°1358290
buzzkaido
Posté le 03-05-2006 à 09:40:38  profilanswer
 

C'est ce que je suis en de faire, mais c pas tres pratique et puis niveau optimisation...
 
ca rajoute une requete (pour recuperer les noms des champs) pour chaque table
 
Ou alors faut parcourir les resultats avec mysql_field_name et mysql_field_table...
 
Tant pis... l'optimisation n'est pas primordiale ici, de toute facon
 
Sur un autre forum, on m'a parlé d'utiliser une vue, mais je vois pas trop  

n°1358294
buzzkaido
Posté le 03-05-2006 à 09:42:30  profilanswer
 

Je pourrais aussi simplifier 2-3 truc en remettant le pointeur de resultat à 0  
 
tu sais, celui qui avance quand tu fais my_sql_fetch_array...
 
Sais-tu comment proceder ?

n°1358326
buzzkaido
Posté le 03-05-2006 à 10:08:31  profilanswer
 

question simple, reponse simple !  
 
mysql_data_seek
 
Autant pour moi... et merci !
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Alias multiples en SQL

 

Sujets relatifs
NHibernate SQL natifconvertir macro excel en requete SQL
Requête SQL avec VBpblm de requete SQL besoin aide !!!
Class PHP5 de gestion de requetes SQL simplesconvertir base de donnée excel en base de donnée SQL
[VB.NET CF2.0] Sql server CE[MFC et ODBC] Requete SQL
Probleme SQL trop lentSQL Server -> Peut on avoir un champ Dynamique dans une clause WHERE ?
Plus de sujets relatifs à : Alias multiples en SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR