Ik kom er niet aan uit hoe ik de sql op moet zetten.
Ik heb een tabel nieuws en een tabel reacties.
Per nieuws item kunnen er meerdere reacties geplaatst worden.
Normaal gebruik ik een join om alle reacties op te halen in dezelfde query. Echter wil ik alleen de nieuwste reactie erbij hebben staan zonder eerst alle reacties op te moeten halen.
Kan dit met een join? of waar moet ik dan precies op zoeken?
Met limit limiteer je het totaal aantal resultaten niet alleen van de reacties.
oftewel, ik haal de nieuwsitems en per nieuwsitem de laatste reactie op in 1 query. echter haalt hij met join alle reacties op. nu wil ik het aantal reacties limiteren tot 1 wat met limit niet werkt omdat hij dan ook maar 1 nieuws item neemt.
Je wilt het aantal reacties limiteren tot 1 en dan alleen de nieuwste ?
kan met een subquery:
select reactie from reacties where reactie_id = select max(reactie_id) from reacties Uiteraard moet je met een where nog wel verder filteren op de specifieke reactie zoals bijv nieuws_id
Heb het nu inderdaad met de subquery gedaan. Dit werkt wel prima maar kan het zijn dat dit niet echt optimaal is? je kan daar maar 1 veld mee ophalen tenzij je meerdere subqueries erin verwerkt lijkt me.