Jag har två tabeller i mysql. I den ena ligger det objekt med information som ska presenteras och i den andra ligger information om bilden. Varje objekt kan ha flera bilder knytna till sig via ett table som heter bilder. Nu skulle jag dock endast vilja läsa ut en första bilden på varje objekt och presentera sex stycken åt gången. Det ser ut som nedan, ursäkta formateringen..
<table = objekt>
id
info
pris
</table>
<table = bilder>
id
oid => det objektet som bilden hör till
bild => filnamn
</table>
SELECT objekt.id as id, bild FROM bilder LEFT JOIN objekt ON objekt.id=bilder.oid
Det ger en lång lista på 57 rader och 33 objekt. Hur ska jag formulera om frågan så jag får ut de första sex objektens bild. Antar att jag ska kombinera detta tillsammans med limit. Jag använder PHP som programmerings språk, men jag tror att lösningen på problemet ligger i sql koden...
Vilken version av Mysql har du? Jag förutsätter 4.1 eller senare.
Det går att skriva om frågan utan subselect, något mer svårbegriplig dock
select o.id, o.info, o.pris, b1.bild,b1.id as bildid
from object o inner join bilder b1 on o.id = b.oid
inner join bilder b2 on b1.oid = b2.oid
group by o.id, o.info, o.pris, b1.bild,b1.id
having b1.id = min(b2.id)
252 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91