Mysql
 sql >> Database >  >> RDS >> Mysql

DISTINCT una colonna in un database

Ciò dovrebbe essere possibile utilizzando una sottoquery. La query interna ordina tutte le righe in base alla data, quindi la prima istanza di ogni nome utente in quel risultato sarebbe la riga che stai cercando.

La query esterna raggruppa per nome utente e AFAIK se non stai utilizzando GROUP_CONCAT questo prenderà sempre la prima istanza di ogni riga contenente il nome utente.

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

Se non funziona, dai un'occhiata alla risposta accettata per questo simile domanda che ha un'altra soluzione. Dovresti essere in grado di modificarlo in base alle tue esigenze.