Avatar billede crelle Nybegynder
19. april 2007 - 12:21 Der er 1 kommentar

Sortering af COUNT med JOINs

Jeg har 2 tabeller:

users: id, firstname, lastname, ...
calendar: id, time, user_id, ...

(Der er flere felter, men det er de relevante for det her spørgsmål)
Jeg vil gerne have et query der henter alle de records der er i calendar for hvert user, joinet med users.id = calendar.user_id.

Til det har jeg query'et:
SELECT u.*, COUNT(c.user_id) FROM users u LEFT JOIN calendar c ON (u.id = c.user_id) GROUP BY u.id

Det virker som det skal, dog med den lille hage at jeg var nødt til at GROUP BY users.id i stedet for calendar.id for at få de records med som ikke havde nogen entries i calendar (hvilket kan forekomme).

Nu ønsker jeg dog at sortere efter calendar.time-feltet (som er unix timestamps), og her bliver det tricky for uanset hvad jeg prøver får jeg kun de brugere og tilhørende counts som HAR entries i calendar, og jeg ønsker alle (også selvom de har 0 entries).

Håber i kan hjælpe
Avatar billede perkoch Nybegynder
22. april 2007 - 02:15 #1
Hvordan ser den query ud, hvor du sorterer?
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