[Mysql] sélectionner 2 fois le meme champs.

sélectionner 2 fois le meme champs. [Mysql] - SQL/NoSQL - Programmation

Marsh Posté le 01-01-2003 à 20:10:33    

dans le forum que je suis ne train de mettre en place, je voudrais en une seule requete pouvoir afficher à la fois l'auteur du sujet, ainsi que l'auteur de la dernière réponse.
 
voici mes requetes actuelles:
 


$sql="SELECT forum_sujet.titre, forum_message.logon, MAX(forum_message.id_message) AS id_dernier_message, forum_message.id_sujet, (count(forum_message.id_message)-1) as nb_messages, MAX(forum_message.date) as max_date
     FROM forum_message
     LEFT JOIN  forum_sujet ON forum_message.id_sujet=forum_sujet.id_sujet
     WHERE id_categorie='$id_categorie'  
     GROUP BY forum_message.id_sujet  
     ORDER BY id_dernier_message DESC";
  $requete=mysql_query($sql);
  while ($ligne=mysql_fetch_array($requete)){
   $requete3=mysql_query("SELECT logon FROM forum_message WHERE id_sujet='$ligne[id_sujet]' ORDER BY id_message DESC LIMIT 1" );
   $ligne3=mysql_fetch_array($requete3);


 
est il possible de réaliser la même chose en une seule requete?
logon = identifiant utilisateur

Reply

Marsh Posté le 01-01-2003 à 20:10:33   

Reply

Marsh Posté le 02-01-2003 à 00:04:02    

detaille un peu la forme de ta bdd en + c pas simple la .. (ta requete complexe)

Reply

Marsh Posté le 02-01-2003 à 02:00:38    

Reply

Marsh Posté le 02-01-2003 à 10:27:17    

Citation :

detaille un peu la forme de ta bdd en + c pas simple la .. (ta requete complexe)


 
Table forum_categorie:
- id_categorie
- categorie
- description
- ordre
 
Table forum_sujet:
- id_sujet
- id_categorie
- titre
 
Table forum_message:
- id_message
- id_sujet
- logon (identifiant utilisateur)
- date
- texte
 


 
En effet, je l'avais vu, ce topic, (mis à part le fait k'ils se chamaillent pour une question de vocabulaire), c'est en effet une possibilité de rajouter l'identifiant du dernier utilisateur qui a posté dans le sujet dans la table forum_sujet, mais je voulais savoir si ct pas possible de le faire sans ca...

Reply

Marsh Posté le 04-01-2003 à 13:26:58    

[:yoyoz]  
 
ca m'interresse ! :D

Reply

Marsh Posté le 04-01-2003 à 14:40:38    

Moi ossi ca m'intéresse  :)  
mais il semble que peu de gens trouvent une réponse...  :??:

Reply

Marsh Posté le 04-01-2003 à 15:03:05    

en effet, peut-etre que cela est impossible :/

Reply

Marsh Posté le 04-01-2003 à 16:57:16    

C'est une question qui revient souvent, mais j'ai toujours pas vu de réponse :(

Reply

Marsh Posté le 05-01-2003 à 19:09:51    

en fait, cela reviendrait a sélectionner 2 fois le meme champs, mais avec, à chaque fois, un critère de recherche différent...
 
Quelqu'un peut il confirmer que c'est impossible à faire en mysql avec une seule requete?

Reply

Marsh Posté le 05-01-2003 à 19:13:23    

2 fois la même colonne ?
Ca, c'est peut être possible. Tu aurais un exemple de résultat voulu, qu'on y voit plus clair.

Reply

Marsh Posté le 05-01-2003 à 19:13:23   

Reply

Marsh Posté le 05-01-2003 à 19:49:25    

en fait fodrait récupérer l'auteur où l'id du post est le plus grand, ce qui implique donc une clause where, non ?


Message édité par Kyle le 05-01-2003 à 19:49:47
Reply

Marsh Posté le 05-01-2003 à 20:02:48    

Peut être plutot un "HAVING"

Reply

Marsh Posté le 06-01-2003 à 14:40:13    

Mon exemple:
je voudrais sélectionner l'id du posteur du sujet, ainsi que l'id du posteur de la derniere reponse au sujet.
(cf description de mes tables plus haut... les id des utilisateurs s'appellent "logon" )

Reply

Marsh Posté le 07-01-2003 à 19:06:29    

aplc a écrit :

dans le forum que je suis ne train de mettre en place, je voudrais en une seule requete pouvoir afficher à la fois l'auteur du sujet, ainsi que l'auteur de la dernière réponse.
 
[...]
 
est il possible de réaliser la même chose en une seule requete?
logon = identifiant utilisateur


Voui, c'est très faisable. Vire ta deuxième requête au profil d'un INNER JOIN. Ensuite, si tu utilises mysql_fetch_array, utilises 2 alias différents pour le champ logon afin de les différencier. Si tu utilises mysql_fetch_row, pas besoin en revanche.

Reply

Marsh Posté le 08-01-2003 à 13:05:09    

OK, je vais me renseigner sur le INNER JOIN.
 
merci pour ta réponse.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed