W MySQL nie ma rekurencji, a wynik, który można by uzyskać, byłby płaski (brak struktury). Najlepszym sposobem jest wciąż pętla while w PHP, Javie lub jakimkolwiek języku programowania, którego używasz.
Zapytanie może wyglądać tak:
SELECT C.*, CHC.ID_SUBCONTENT
FROM CONTENT C
LEFT OUTER JOIN CONTENT_HAS_CONTENT CHC ON CHC.ID_CONTENT = C.ID_CONTENT
WHERE C.ID = ?
... // you get the idea
a w PHP możesz powtórzyć zapytanie z następnym sub_content_id, aż ID_SUBCONTENT is null