SQL : DISTINCT => Problème

Résolu/Fermé
onequokka Messages postés 46 Date d'inscription samedi 15 juin 2019 Statut Membre Dernière intervention 29 septembre 2021 - 29 déc. 2019 à 20:38
onequokka Messages postés 46 Date d'inscription samedi 15 juin 2019 Statut Membre Dernière intervention 29 septembre 2021 - 30 déc. 2019 à 13:14
Bonsoir,
Je bloque sur une requête SQL, si quelqu'un pouvait me sauver :
Pour faire simple : je cherche à récupérer la liste des titres de mes articles, ordonnés par les réponses. (en gros faire la liste des derniers articles ou l'on a répondu)
SELECT DISTINCT topics.title FROM topics INNER JOIN topic_answer ON topics.id = topic_answer.topic_id ORDER BY topic_answer.id DESC LIMIT 0,8

Mais cela ne marche pas, ca ne me renvoie que les derniers articles ...

Sauf que si j'enlève le DISTINCT j'ai bien ce que je vais, dans le bon ordre, mais avec la duplication d'articles ...
(10.1.41-MariaDB-0+deb9u1)
Merci beaucoup !

1 réponse

yg_be Messages postés 23399 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 décembre 2024 Ambassadeur 1 556
Modifié le 29 déc. 2019 à 23:46
bonjour, tu veux obtenir la liste des derniers articles ou l'on a répondu, et puis tu écris que cela ne marche pas, que cela retourne que les derniers articles.
peux-tu être plus précis? pourquoi ne pas nous montrer ce que retourne la requête, avec et sans distinct, et, également, le résultat attendu?

je crois peut-être comprendre: avec le distinct, tu obtiens moins de 8 résultats, c'est cela?

alors j'essaierais d'abord ceci:
SELECT topic_id FROM topic_answer group by topic_id order by max(id) desc limit 0,8

cela retourne-t-il les 8 id des articles qui t'intéressent?
1
onequokka Messages postés 46 Date d'inscription samedi 15 juin 2019 Statut Membre Dernière intervention 29 septembre 2021 3
30 déc. 2019 à 13:14
Effectivement le group by fonctionne mieux merci.
Le problème était que le distinct supprimait le filtre d'ordre sur MariaDB.
0