Alias multiples en SQL - SQL/NoSQL - Programmation
Marsh Posté le 03-05-2006 à 08:33:35
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.
Marsh Posté le 03-05-2006 à 08:43:09
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 !
Marsh Posté le 03-05-2006 à 09:22:02
Attends, là, il y a qq chose qui ne va pas, avec ton select ?
Tu fais un produit cartésien pour chaque utilisateur ??? WTH ?
KK, QQ... Sauf que la deuxième option est correcte en Français. ;-)
Marsh Posté le 03-05-2006 à 09:30:44
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 !
Marsh Posté le 03-05-2006 à 09:34:23
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).
Marsh Posté le 03-05-2006 à 09:40:38
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
Marsh Posté le 03-05-2006 à 09:42:30
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 ?
Marsh Posté le 03-05-2006 à 10:08:31
question simple, reponse simple !
mysql_data_seek
Autant pour moi... et merci !
Marsh Posté le 03-05-2006 à 08:23:33
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 !