SELECT (select max(id) from recensioner where filmid = f.id) as rid,
f.* FROM filmer as f
where exists (select 1 from recensioner where filmid = f.id )
ORDER BY 1 DESC
------------------
essentitia preter non sans multiplicandum
10 svar · 181 visningar · startad av nill
Jag vill göra såhär om ni förstår:
SELECT filmer.* FROM filmer LEFT JOIN recensioner ON filmer.ID = recensioner.filmID ORDER BY recensioner.ID DESC
fast just denna kod gör att om det är 3 ID i följd i tabellen recensioner så blir posten i filmer med 3 gånger. heltokigt.
vill bara att filmerna ska sorteras efter senaste recesionerna.
SELECT (select max(id) from recensioner where filmid = f.id) as rid,
f.* FROM filmer as f
where exists (select 1 from recensioner where filmid = f.id )
ORDER BY 1 DESC
------------------
essentitia preter non sans multiplicandum
Yes.. Lars G är tillbaka.
Men det där du gav mig fungerade inte riktigt. Det blev inte flera av samma. Vet inte riktigt hur den sorterade nu. De sista blev sist (som jag iofs villa ha tvärtom) men sen de första blev inte först utan nånstans i mitten.. hmm
Jag gjorde ett test med den databas jag använder och sql-satsen fungerade som jag förväntade mig.
Om du kör sql-satsen separat, stämmer då sorteringsordningen med de värden du får för rid?
Vilken dbms använder du?
------------------
essentitia preter non sans multiplicandum
Lars G kom igen nu.. du brukar alltid lösa mina problem när ingen annan kan :) Även denna betan ska du väl klara av till mig.
Med köra separat menar jag att du kan ställa frågan i något lämpligt sql-fönster direkt i Access.
Med rid menar jag värdena i den första kolumnen. (Order by 1 innebär att man sorterar enligt den första kolumnen i select-listan.)
Jag har ingen direkt lösning då jag tycker att den fråga som jag skrev borde fungera. Man kan ju formulera om din första fråga med en group by
SELECT max(r.id), f.id,f.titel FROM filmer as f LEFT JOIN recensioner as r ON f.ID = r.filmID
group by f.id,f.titel
ORDER BY 1 DESC
Om du vill ha med fler kolumner från filmer så måste dessa också vara med i group by.
------------------
essentitia preter non sans multiplicandum
Mina kunskaper i Access sträcker sig tyvärr bara till att kunna skapa en basic databas :/
Antagligen orkar du men om du är intresserad ligger databasen på http://www.andreashemsida.com/klass/db/media.mdb
och sidan på http://www.andreashemsida.com/klass/asp/media.asp
Själv har jag kommit fram till att den fråga som du först gjorde till mig sorterar efter filmID(i tabellen recesioner) fast ändå inte ritkigt då filmerna sorteras såhär: 26, 7, 9, 10, 11, 14, 15.
Och det var ju ID och inte filmID som det skulle sorteras efter :/
Den där Group fick jag inte alls att fungera.
Sen undrar jag var man kan lära sig sån här mer avancerad SQL. w3schools.com verkar ju inte riktigt räcka till :)
Antagligen orkar du INTE skulle det vara :)