[Mysql] Group by

mercoledì 28 dicembre 2016 - 14.26
Tag Elenco Tags  C#  |  VB.NET  |  .NET 4.0  |  MySQL 5.5

totti240282 Profilo | Guru

Ciao ho una tabella cosi:

id filename link
1 prova http
2 prova http2

Se io faccio una select cosi.

SELECT * FROM tabella group by filename ;

mi restituisce prova ovviamente ma quello con id 1 che contiene un link http, ma invece a me serve ottenere sempre quello con id più alto quindi recente come posso fare ?
C'è solo un capitano !!!!!!

renarig Profilo | Expert

il principio è quello di:
- fare una prima vista che contiene solamente i massimi ID per ogni gruppo (maxid)
- poi metti in JOIN la vista con la tabella estraendo tutti i valori dalla tabella
che nidificato in una unica vista viene più o meno cosi
SELECT T2.id, T2.filename, T2.link FROM tabella AS T2 INNER JOIN ( SELECT Max(T1.id) AS maxid FROM tabella AS T1 GROUP BY T1.filename ) AS Q1 ON T2.id = Q1.maxid ;

Ci sarebbe anche il sistema alternativo della sottoquery ma facciamo un passo per volta :)

.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5