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
A voir également:
- Soucis de distinct MYSQL
- Mysql community server - Télécharger - Bases de données
- Total distinct excel n'apparait pas - Forum Excel
- Mysql error 2002 ✓ - Forum Linux / Unix
- Gpu distinct inactif - Forum Carte graphique
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
21 réponses
Essaye:
SELECT forum
FROM ( SELECT forum, MAX(datepost)
FROM cocforum
GROUP BY forum
order by MAX(datepost) desc
) as tab
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
@+
Sauf erreur de ma part, car je ne peux pas tester :
select distinct forum from mon_forum order by datepost desc
@+
Bonsoir Rudak,
ou
ou
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
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 :
... et pour le SGBD Oracle, le résultat est conforme à tes spécifications.
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
#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..
@+
SELECT forum
FROM ( SELECT forum, MAX(datepost)
FROM cocforum
GROUP BY forum
) as tab //si tu veux le faire sous mysql..
@+
Essaye avec le order by!!
SELECT forum
FROM ( SELECT forum, MAX(datepost)
FROM cocforum
GROUP BY forum
order by datepost desc
) as tab
SELECT forum
FROM ( SELECT forum, MAX(datepost)
FROM cocforum
GROUP BY forum
order by datepost desc
) as tab
Avec cette requête, j'ai le meme resultat que BadGuitarist (sous mysql...) et conforme à ce qui est demandé....
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>";
}