Selct at once ou distinct en mysql
Mattyghan
-
Mattyghan -
Mattyghan -
Yop !
Bon, bah je travaille sur mon site comme tt les soirs depuis deux ans, mais là je bloque sur une requète depuis 3 heures ; je suis presque sur d'avoir déjà trouvé la solution mais pas moyen de mettre le curseur dessus :
J'ai une table de ce type :
table_message :
id_message id_news nom_utilisateur date_message
je cherche a sortir tous les résultats, classés par date mais en sachant que je ne veux pas de doublons de id_news
Si je fais un select distinct id_news le résultat est juste, sauf que j'ai QUE mes id_news, et pas de date_message, ou autres nom_util...
Si qqn m'a compris et a une solution, je suis preneur.
Il me semblait qu'il y avait une requète du genre Select at once... mais j'ai du rêver non ? Je l'ai pas retouvé ?
Bon, bah je travaille sur mon site comme tt les soirs depuis deux ans, mais là je bloque sur une requète depuis 3 heures ; je suis presque sur d'avoir déjà trouvé la solution mais pas moyen de mettre le curseur dessus :
J'ai une table de ce type :
table_message :
id_message id_news nom_utilisateur date_message
je cherche a sortir tous les résultats, classés par date mais en sachant que je ne veux pas de doublons de id_news
Si je fais un select distinct id_news le résultat est juste, sauf que j'ai QUE mes id_news, et pas de date_message, ou autres nom_util...
Si qqn m'a compris et a une solution, je suis preneur.
Il me semblait qu'il y avait une requète du genre Select at once... mais j'ai du rêver non ? Je l'ai pas retouvé ?
A voir également:
- Selct at once ou distinct en mysql
- At mail - Forum Clavier
- Mysql community server - Télécharger - Bases de données
- World at arms - Télécharger - Rôle RPG
- Seti at home - Télécharger - Web & Internet
- 2 colis distinct shein - Forum Consommation & Internet
3 réponses
Bon j'ai trouvé
SELECT DISTINCT (
id_news
), nom_util, date_message, titre_message
FROM messages
WHERE 1
group by id_news
order by date_message DESC
LIMIT 0 , 30
SELECT DISTINCT (
id_news
), nom_util, date_message, titre_message
FROM messages
WHERE 1
group by id_news
order by date_message DESC
LIMIT 0 , 30
Mais j'ai un problème...
SELECT DISTINCT (id_news), nom_util, date_message, titre_message
FROM messages
WHERE id_news != 5
group by id_news
order by date_message DESC
LIMIT 0 , 30
me donne bien une liste de résultats unique de id_news ; tous ces résultats sont classés par date, mais je voudrais que ce soit chaque id_news le plus réssent qui sorte.
Et aussi en affichant une seul fois chaque id_news, comment compter à chaque sortie le nb d'id_news identique ? Avec count,
SELECT DISTINCT (id_news), nom_util, date_message, titre_message
FROM messages
WHERE id_news != 5
group by id_news
order by date_message DESC
LIMIT 0 , 30
me donne bien une liste de résultats unique de id_news ; tous ces résultats sont classés par date, mais je voudrais que ce soit chaque id_news le plus réssent qui sorte.
Et aussi en affichant une seul fois chaque id_news, comment compter à chaque sortie le nb d'id_news identique ? Avec count,
Pour compter le nombre de id_news (tout en en affichant qu'un seul) j'ai trouvé :
SELECT DISTINCT (id_news), nom_util, date_message, titre_message, COUNT(*) AS id_message
FROM messages
WHERE id_news != 5
group by id_news
order by date_message DESC
LIMIT 0 , 30
Mais le id news qui sort n'est toujours pas le dernier... mais le premier !
SELECT DISTINCT (id_news), nom_util, date_message, titre_message, COUNT(*) AS id_message
FROM messages
WHERE id_news != 5
group by id_news
order by date_message DESC
LIMIT 0 , 30
Mais le id news qui sort n'est toujours pas le dernier... mais le premier !