BEARBEITET
Anscheinend würde die Gruppierung in der MySQL-Datenbank für Sie ausreichen.
Datenbankspalten sind main_id, sub_id, sub_main_id, sub_data
SELECT *
FROM tblmain
inner join sub on sub.sub_main_id = main_id
group by main_id;
ohne die Gruppe habe ich diese Datensätze:
1, 1, 1, 'test 1'
1, 2, 1, 'test 2'
2, 3, 2, 'test 3'
3, 4, 3, 'test 4'
2, 5, 2, 'test 5'
Nach der Gruppierung erhalte ich dieses Ergebnis:
1, 1, 1, 'test 1'
2, 3, 2, 'test 3'
3, 4, 3, 'test 4'