Ik heb een tabel met daarin versies van artikelen. Een artikel kan meerdere versies hebben en deze versies kunnen ongekeurd, goedgekeurd of afgekeurd zijn.
Tabel definitie:
* id
* artikel_id
* versie
* status
* artikel
artikel_id een uniek nummer per versie, versie is een oplopend nummer per artikel, status: 0=ongekeurd, 1=afgekeurd, 2=goedgekeurd, artike is het artikel zelf
Nu wil ik een lijst van alle laatste versies van artikelen die zijn goedgekeurd, maar hoe fix ik dit?
Zelf kwam ik tot het volgende:
SELECT id, artikel FROM artikelversies WHERE status=2 GROUP BY artikel_id HAVING version=max(version)
Maar doordat de group by gebeurd voor dat de having clause wordt gechecked klopt het voor geen meter.
Hoe is dit toch in een query mogelijk
Tabel definitie:
* id
* artikel_id
* versie
* status
* artikel
artikel_id een uniek nummer per versie, versie is een oplopend nummer per artikel, status: 0=ongekeurd, 1=afgekeurd, 2=goedgekeurd, artike is het artikel zelf
Nu wil ik een lijst van alle laatste versies van artikelen die zijn goedgekeurd, maar hoe fix ik dit?
Zelf kwam ik tot het volgende:
SELECT id, artikel FROM artikelversies WHERE status=2 GROUP BY artikel_id HAVING version=max(version)
Maar doordat de group by gebeurd voor dat de having clause wordt gechecked klopt het voor geen meter.
Hoe is dit toch in een query mogelijk