webForumDet fria alternativet

Fånga info samt senast post

Databaser & SQLur Databashanterare & SQL

3 svar · 616 visningar · startad av mickol

Medlem sedan jan. 20127 inlägg
Frågan#1

Hej

Jag har tre tabeller enligt exempel nedan:

Produkt
id | titel
1 | Nalle
2 | Groda

Leveranstid
produktid | dagar
1 | 10
2 | 20

Pris
prisid | produktid | pris
1 | 1 | 10
2 | 2 | 20
3 | 1 | 22

Jag vill här skriva en fråga som listar alla produkter med leveranstid och senaste registrerade priset. Kan någon hjälpa mig med detta? :) Det borde alltså se ut så här i resultatet:

Produktid | titel | leveranstid | pris
1 | Nalle | 10 dagar | 22 kr
2 | Groda | 20 dagar | 20 kr

Medlem sedan juni 2009920 inlägg
#2
SELECT * FROM Produkter
LEFT JOIN DeliveryTime ON Produkter.id=Leveranstid.produktid
LEFT JOIN
(SELECT produktid,MAX(pris) FROM Pris
GROUP BY produktid) p ON Produkter.id=p.produktid
Medlem sedan jan. 20127 inlägg
#3

Gildebrand skrev:

SELECT * FROM Produkter
LEFT JOIN DeliveryTime ON Produkter.id=Leveranstid.produktid
LEFT JOIN
(SELECT produktid,MAX(pris) FROM Pris
GROUP BY produktid) p ON Produkter.id=p.produktid

Tack! Men detta returnerar väl det högsta priset ur tabellen? Vad jag är ute efter är det sista registrerade värdet, det kan vara både högre och lägre än den näst senaste posten.

Medlem sedan juni 2009920 inlägg
#4

Ahh sorry, byt ut max(pris) mot max(prisid)

133 ms totalt · 3 externa anrop · v20260731065814-full.9823c0c5
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)