Requête qui me pose problème
Bonjour à toutes et à tous.
Base de données : postgresql
J'essaie de programmer un forum élémentaire, pour un club de sport.
Il y a trois tables dont voici la description :
Table t_e_utilisateurs_uti :
Code:
1 2 3 4 5 6 7
| uti_id serial NOT NULL,
uti_nom character varying(30) NOT NULL,
uti_mot_de_passe character varying(255) NOT NULL,
uti_courriel character varying(255) NOT NULL,
uti_date timestamp without time zone NOT NULL,
uti_grade integer NOT NULL,
CONSTRAINT "PK_uti_id" PRIMARY KEY (uti_id ) |
Table t_e_sujets_suj :
Code:
1 2 3 4 5 6 7 8
| suj_id serial NOT NULL,
uti_id integer NOT NULL,
suj_titre character varying(255) NOT NULL,
suj_date date NOT NULL,
CONSTRAINT "PK_suj_id" PRIMARY KEY (suj_id ),
CONSTRAINT "FK_uti_id" FOREIGN KEY (uti_id)
REFERENCES t_e_utilisateurs_uti (uti_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION |
Table t_e_reponses_rep
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| rep_id serial NOT NULL,
uti_id integer NOT NULL,
suj_id integer NOT NULL,
rep_texte text NOT NULL,
rep_date date NOT NULL,
rep_heure time without time zone,
CONSTRAINT "PK_rep_id" PRIMARY KEY (rep_id ),
CONSTRAINT "FK_suj_id" FOREIGN KEY (suj_id)
REFERENCES t_e_sujets_suj (suj_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "FK_uti_id" FOREIGN KEY (uti_id)
REFERENCES t_e_utilisateurs_uti (uti_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION |
Je cherche à obtenir les résultats suivants :
Titre du sujet; Nombre de réponses; Auteur du sujet; Nom du dernier répondeur; date et heure de la dernière réponse.
Voici le requête qui me permet d'approcher ce que je demande :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| SELECT
t_e_utilisateurs_uti.uti_nom AS "Auteur",
t_e_sujets_suj.suj_titre AS "Titre",
MAX(t_e_reponses_rep.rep_date) AS "Date rép",
MAX(t_e_reponses_rep.rep_heure) AS "Heure rép",
COUNT(t_e_reponses_rep.rep_id) AS "Nbre rép"
FROM
t_e_reponses_rep,
t_e_sujets_suj,
t_e_utilisateurs_uti
WHERE
t_e_reponses_rep.suj_id = t_e_sujets_suj.suj_id AND
t_e_sujets_suj.uti_id = t_e_utilisateurs_uti.uti_id
GROUP BY
t_e_sujets_suj.suj_date,
t_e_sujets_suj.suj_titre,
t_e_utilisateurs_uti.uti_nom
ORDER BY
t_e_sujets_suj.suj_date DESC; |
Voici ce que donne cette requête :
Code:
1 2 3 4 5 6
|
"Sapo";"vtt des Chambarans";"2013-11-09";"16:32:12";1
"Christesse";"Assemblée Générale";"2013-11-11";"18:42:53";3
"Miflon";"Gégé le retour";"2013-08-17";"13:02:36";4
"Lordan";"La Tatoune";"2013-09-07";"14:46:02";2 |
Je ne vois pas comment obtenir le nom du répondeur avec cette requête.
Donc voici mes questions:
- Cette requête vous paraît-elle correcte, y a t-il mieux?
- Pouvez-vous m'aider à obtenir le nom du dernier répondeur?
Merci pour vos futures réponses.
Miflon.