Mysql
 sql >> Base de données >  >> RDS >> Mysql

DISTINCT une colonne dans une base de données

Cela devrait être possible en utilisant une sous-requête. La requête interne classe toutes les lignes par date, de sorte que la première instance de chaque nom d'utilisateur dans ce résultat serait la ligne que vous recherchez.

La requête externe regroupe par nom d'utilisateur, et AFAIK si vous n'utilisez pas GROUP_CONCAT cela prendra toujours la première instance de chaque ligne contenant le nom d'utilisateur.

SELECT username, wikitext, wikidate FROM
  (SELECT username, wiki.text AS wikitext, wiki.date AS wikidate
  FROM wiki_house
  INNER JOIN wiki ON wiki_house.wiki_id = wiki.id
  INNER JOIN users ON wiki.user_id = users.id
  AND wiki_house.house_id = 1
  AND wiki.language = 'it'
  ORDER BY wiki.date DESC)
GROUP BY username
LIMIT 10

Si cela ne fonctionne pas, jetez un œil à la réponse acceptée pour ce similaire question qui a une autre solution. Vous devriez pouvoir le modifier en fonction de vos besoins.