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
kan je die LIMIT niet uitvoeren op het join gedeelte?
Ik weet wel niet of dat gaat eigenlijk

SELECT * FROM table1 LEFT JOIN (table2 ON table1.column=table2.column LIMIT 0, 1)


Achteraf bekeken is dit natuurlijk helemaal niet de bedoeling van een JOIN.
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.

Reageren