le même champs, 2 fois dans la même requête - résolu [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 19-07-2002 à 20:52:38
RELAX Sky a écrit a écrit : ca proviens de 2 tables différentes ? |
nan, le pseudo provient de la même table, c'est bien là le Pb
Marsh Posté le 19-07-2002 à 20:57:05
RELAX Sky a écrit a écrit : et bin ou est le pb ? select champcreateur,champdernierposteur |
Bah non
Table du topic:
(...)
ID_CREATEUR=5
ID_DERNIER_POSTEUR=3
(..)
Table des pseudos:
ID_UTILISATEUR=5
PSEUDO="THE REAL SMILEY"
(...)
ID_UTILISATEUR=3
PSEUDO="Dudulle"
comment tu fais pour récupérer le pseudo du Créateur et du dernier posteur
Marsh Posté le 19-07-2002 à 21:01:28
RELAX Sky a écrit a écrit : ca peu se faire a l'aide de jointures mais bon ca surcharge + que ca peu etre benefique ce ke je te conseille (et ke je fais) Table du topic: (...) ID_CREATEUR=5 PSEUDO_CREATEUR="toto" ID_DERNIER_POSTEUR=3 PSEUDO_LASTUSR="titi" (..) copie de données rulez, comme ca une requete simple, pas de jointure donc pas de surcharge ni de lock de tables |
Mouais , cette idée m'a aussi traversé l'esprit, je crois que je vais l'appliquer aussi
Thx
Marsh Posté le 19-07-2002 à 21:06:35
c techniquement si mauvais ke ça les jointures ?
pke bon, moi j'optimise aussi sur le faite ke les tables soit dynamiques ou fixe, donc je sépare les données fixes aux données dynamiques et je joint kan j'en ai besoin ...
Marsh Posté le 19-07-2002 à 22:41:13
ouais mais la en l'occurrence elle est toute petite la jointure ... franchement tu pourrais la faire
Marsh Posté le 19-07-2002 à 23:03:07
THE REAL SMILEY a écrit a écrit : Bah non Table du topic: (...) ID_CREATEUR=5 ID_DERNIER_POSTEUR=3 (..) Table des pseudos: ID_UTILISATEUR=5 PSEUDO="THE REAL SMILEY" (...) ID_UTILISATEUR=3 PSEUDO="Dudulle" comment tu fais pour récupérer le pseudo du Créateur et du dernier posteur |
Tu peux faire 2 jointures sur la même table :
SELECT user1.pseudo, user2.pseudo
FROM topic, pseudo AS user1, pseudo AS user2
WHERE topic.id_createur = user1.id_utilisateur
AND topic.id_dernier_posteur = user2.id_utilisateur
Si tu as un index sur id_utilisateur de la table pseudo, ca devrait pas être trop gourmand.
Marsh Posté le 20-07-2002 à 00:42:17
mrbebert a écrit a écrit : Tu peux faire 2 jointures sur la même table : SELECT user1.pseudo, user2.pseudo FROM topic, pseudo AS user1, pseudo AS user2 WHERE topic.id_createur = user1.id_utilisateur AND topic.id_dernier_posteur = user2.id_utilisateur Si tu as un index sur id_utilisateur de la table pseudo, ca devrait pas être trop gourmand. |
bien joué, j'y avais pas pensé
c'est très bon ça, je teste tout de suite
Marsh Posté le 19-07-2002 à 20:44:09
Désolé pour ce titre peu explicite, je m'explique:
Je suis en train de développer un forum (original )
et pour ma requête qui affiche la liste des topics, je dois afficher le pseudo du créateur et le pseudo du dernier posteur
mais je craint de devoir faire en deux requêtes non ?
pas moyen d'optimiser en une seule requete ?
Message édité par THE REAL SMILEY le 20-07-2002 à 01:15:42
---------------
༼ つ ◕_◕ ༽つ