Avatar billede cdull Nybegynder
09. februar 2009 - 11:06 Der er 4 kommentarer og
1 løsning

SELECT hvor JOIN vægter højest

Hej Folkens.

Jeg skal lave nogle udtræk af profiler på et site.
Jeg vil gerne have at udtrækkene sker med et join over billedetabellen.
Er det muligt at lave dette udtræk med en join til billedetabellen men hvor at hvis der ikke er nok billede at den henter dem uden billeder.

F.eks laver et udtræk hvor alle nyeste profiler med billede udtrækkes, men hvis det ikke er nok så hentes de nyeste uden billede også.

F.eks TOP 10 på profiler, hvor kun 5 har billede, så skal den hente 5 som ikke har også.

Giver det mening ?
Avatar billede tjens Nybegynder
09. februar 2009 - 11:24 #1
Ja, det hedder LEFT JOIN
Avatar billede cdull Nybegynder
09. februar 2009 - 11:33 #2
Vil en left join ikke bare tage alle nyeste profiler og så tilknytte et billede hvis der findes et billede ?

det jeg gerne vil opnå er at få alle dem med billeder forrest og hvor resten så fyldes ud af dem som intet billede har.
Avatar billede aaberg Nybegynder
09. februar 2009 - 12:12 #3
Du kan gøre noget lignende dette:

SELECT profil.kolonner, billede.billede_id, billede.data, CASE WHEN profil.billede_id IS NULL THEN 0 ELSE 1 END as har_billede
FROM profil
LEFT OUTER JOIN billede on profil.billede_id = billede.billede_id
order by har_billede desc, profil.score

Ideen er, at lave en ekstra kolonne i querien, hvor alle profiler med billede returnerer et 1-tal, og alle der ikke har, returnerer et 0-tal. Så sortere vi først på har_billede kolonnen, og derefter på din profil-score.
Avatar billede cdull Nybegynder
05. oktober 2010 - 11:41 #4
aaberg_cc smid et svar.

Tak for hjælpen.
Avatar billede aaberg Nybegynder
05. oktober 2010 - 11:48 #5
svar
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