webForumDet fria alternativet

Sortera efter ID i annan tabell

ASP

10 svar · 181 visningar · startad av nill

Medlem sedan okt. 2001387 inlägg
Frågan#1

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.

Medlem sedan dec. 200012 464 inlägg
#2
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

Medlem sedan okt. 2001387 inlägg
#3

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

Medlem sedan dec. 200012 464 inlägg
#4

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

Medlem sedan okt. 2001387 inlägg
#5

Jag använder Acccess..

köra separat ? rid ? (nu blir det för avancerat :) )

Medlem sedan okt. 2001387 inlägg
#6

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.

Medlem sedan dec. 200012 464 inlägg
#7

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

Medlem sedan okt. 2001387 inlägg
#8

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 :)

Medlem sedan okt. 2001387 inlägg
#9

Antagligen orkar du INTE skulle det vara :)

Medlem sedan okt. 2001387 inlägg
#10

Fortfarande inte löst det :(

Allt jag vill är att innehållet i tabellen filmer ska sorteras efter kolumnen ID i tabellen recensioner. och de kopplas ihop med filmer.ID = recensioner.filmID

ska fungera i access då.

Medlem sedan okt. 2001387 inlägg
#11

Fortfarande inte löst det :(

Allt jag vill är att innehållet i tabellen filmer ska sorteras efter kolumnen ID i tabellen recensioner. och de kopplas ihop med filmer.ID = recensioner.filmID

ska fungera med access då.

311 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
174 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
173 ms — ändringar (db)