09. februar 2009 - 11:06Der 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å.
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.
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.