Avatar billede egeriis Nybegynder
14. september 2005 - 18:18 Der er 4 kommentarer og
1 løsning

Brug af DISTINCT

Jeg forstår ikke DISTINCT "funktionen".

Eksempel:

SELECT ed_users.*,ed_log.timestamp as lastlogin,DISTINCT ed_log.uid FROM ed_users,ed_log

Denne forespørgsel giver syntax error.

Jeg mente nu ellers jeg engang, ved en tidligere MySQL version kunne sige SELECT *,DISTINCT field FROM. Hvordan skal jeg så vælge hvad som skal være DISTINCT?

Problemet er at jeg henter brugere fra én tabel og sidste login fra en anden. Men når jeg henter logins henter den samtlige logins. Hvis jeg siger GROUP BY uid, henter den det første login, selvom jeg har en ORDER BY timestamp DESC.


Det var egentlig flere spørgsmål på én gang.


På forhånd tak.
Avatar billede jokkejensen Novice
14. september 2005 - 19:20 #1
DISTINCT(ed_log.uid) from ...
Avatar billede capaj Nybegynder
15. september 2005 - 10:03 #2
Distinct fjerner duplikater - dvs. der fjernes rækker fra dit resultatset som optræder mere end 1 gang. Jeg mener ikke du kan anvende den som du først beskriver.

Du kan også anvnede distinct i aggregeringer .- f.x. en count:

Select a, count(distinct b)
from T
group by a

Til løsning af dit prb. kunne du evt. anvende max funktion på login: i til med:
Select
  B.BrugerNavn,
  Max(L.logintid)
From
  BrugerTabel B
  inner join Logins L on b.brugerid=L.brugerid
Group By b.brugernavn

mvh capaj
Avatar billede kjulius Novice
17. september 2005 - 23:46 #3
Jeg tilslutter mig capaj, med mindre du ønsker alle brugere vist, uanset om de har postet. I så fald skal du bruge en outer join:

Select
  B.Id
  B.BrugerNavn
  MAX(L.Logintid)
FROM BrugerTabel B
LEFT JOIN Logins L
  ON B.Id = L.uid
GROUP BY B.Id, B.BrugerNavn
Avatar billede egeriis Nybegynder
27. november 2005 - 19:04 #4
Lukker spørgsmål. Vil gerne uddele pointene da jeg har lært af at I har nævnt left join, inner join, hvis dette har interesse.
Avatar billede egeriis Nybegynder
30. november 2005 - 17:49 #5
Der lukkes.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester