Soucis de distinct MYSQL
Résolu
rudak
Messages postés
590
Date d'inscription
Statut
Membre
Dernière intervention
-
chuka Messages postés 980 Statut Membre -
chuka Messages postés 980 Statut Membre -
Bonjour, pour mon forum, je voudrais afficher distinctement mes forums (thématiques) dans l'ordre du plus recent au plus ancien des posts qui s'y trouvent...
voila ma requette qui ne fonctionne pas : (elle me renvoie bien les forum mais pas dans lordre voulu)
SELECT forum , datepost FROM monforum GROUP BY forum ORDER BY datepost DESC
mes datespost sont stokées en timestamp (INT)
exemple table :
FORUM_____ SUJET______MESSAGE_________DATEPOST
nature_____poissons_____blablablabla________150
nature_____maisons_____blablablabla_________80
nature_____etoiles______blablablabla_________120
passion____vélo________blablablablabla_______180
passion____piscine______blablablablabla_______60
amour_____julie________blablablabla_________140
et je voudrai que cela me sorte donc :
passion
nature
amour
du plus recent (180) au plus vieu (140)
j'espere avoir été sufisament clair dans mes explications ^^, je vous remercie pour votre coup de main
voila ma requette qui ne fonctionne pas : (elle me renvoie bien les forum mais pas dans lordre voulu)
SELECT forum , datepost FROM monforum GROUP BY forum ORDER BY datepost DESC
mes datespost sont stokées en timestamp (INT)
exemple table :
FORUM_____ SUJET______MESSAGE_________DATEPOST
nature_____poissons_____blablablabla________150
nature_____maisons_____blablablabla_________80
nature_____etoiles______blablablabla_________120
passion____vélo________blablablablabla_______180
passion____piscine______blablablablabla_______60
amour_____julie________blablablabla_________140
et je voudrai que cela me sorte donc :
passion
nature
amour
du plus recent (180) au plus vieu (140)
j'espere avoir été sufisament clair dans mes explications ^^, je vous remercie pour votre coup de main
21 réponses
- 1
- 2
Suivant
-
Essaye:
SELECT forum
FROM ( SELECT forum, MAX(datepost)
FROM cocforum
GROUP BY forum
order by MAX(datepost) desc
) as tab -
Bonsoir,
Sauf erreur de ma part, car je ne peux pas tester :
select distinct forum from mon_forum order by datepost desc
@+
-
non ca ne fonctionne pas si c'était si simple je me poserai pas la question... :)
-
Bonsoir Rudak,
SELECT forum, MAX(datepost) FROM mon_forum GROUP BY forum ORDER BY datepost DESC
ou
SELECT forum, MAX(datepost) FROM mon_forum ORDER BY datepost DESC GROUP BY forum
ou
SELECT forum, d FROM ( SELECT forum, MAX(datepost) d FROM mon_forum GROUP BY forum ) ORDER BY datepost DESC
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
aucune des 3 ne renvoi le résultat dans l'ordre voulu
CREATE TABLE IF NOT EXISTS `cocforum` (
`forum` varchar(80) collate latin1_general_ci NOT NULL,
`sujet` varchar(80) collate latin1_general_ci NOT NULL,
`texte` text collate latin1_general_ci NOT NULL,
`pseudoposteur` varchar(45) collate latin1_general_ci NOT NULL,
`nbrevues` int(5) NOT NULL,
`datepost` int(20) NOT NULL,
`idpost` int(6) NOT NULL auto_increment,
`statut` int(1) NOT NULL,
PRIMARY KEY (`idpost`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=180 ;
voila ma table si quelqu'un veu tester chez lui -
Bonsoir Rudak,
Je viens de créer ta table et insérer le jeu de données que tu as mentionné dans ton post.
Là dessus, j'ai exécuté l'ordre SQL suivant :SELECT forum FROM ( SELECT forum, MAX(datepost) FROM cocforum GROUP BY forum )
... et pour le SGBD Oracle, le résultat est conforme à tes spécifications.
-
moi cette requette me renvoie une erreur sous mysql via phpmyadmin
#1248 - Every derived table must have its own alias -
Salut,
SELECT forum
FROM ( SELECT forum, MAX(datepost)
FROM cocforum
GROUP BY forum
) as tab //si tu veux le faire sous mysql..
@+
-
c'est toujours pas dans l'ordre du plus recent au plus ancien...
-
Essaye avec le order by!!
SELECT forum
FROM ( SELECT forum, MAX(datepost)
FROM cocforum
GROUP BY forum
order by datepost desc
) as tab -
oui jai essayé mais ca ne ressort toujours pas dans l'ordre
-
Avec cette requête, j'ai le meme resultat que BadGuitarist (sous mysql...) et conforme à ce qui est demandé....
-
je teste directement sous phpmyadmin et le resultat n'est pas bon
-
-
jvien de tester directement dans mon script et ca ne marche pas plus que sur phpMyAdmin
-
-
--
-- Structure de la table `cocforum` -
voila le code qui ne t'aidera pas beaucoup plus...
$resultfofo=mysql_query("SELECT forum FROM ( SELECT forum, MAX(datepost) FROM cocforum $seulforum GROUP BY forum order by datepost desc ) as tab") or die(mysql_error()); while($dataforum = mysql_fetch_array($resultfofo)) { $forum = addslashes( $dataforum['forum'] ); echo $forum."<br>"; } -
ok la a premiere vue ca a l'air de retourner les infos corectement je teste avec le script et jte dit mais je pense que c bon :) (jespere)
-
je confirme ca marche merci beaucoup d'avoir persisté :)
cette requette ma mise a bout de nerf depuis plus de 3 semaines... :)
merci encore !
- 1
- 2
Suivant