Nie jest to możliwe w czystym SQL.
SQL jest przeznaczony do pracy z danymi relacyjnymi, a nie z drzewami (dane hierarchiczne).
Możesz reprezentować drzewo w schemacie SQL, jednak nie będziesz w stanie utworzyć drzewa tak, jak zamierzasz.
Jedynym sposobem, aby to zrobić, jest uzyskanie użytecznego wyniku poprzez utworzenie tylu sprzężeń, ile przechowujesz.
Twój obecny schemat może obsługiwać wiele poziomów, jednak bardzo trudno będzie zarządzać więcej niż jednym lub dwoma poziomami.
Być może zainteresuje Cię Model zestawu zagnieżdżonego lub Zarządzanie danymi hierarchicznymi w mysql
Istnieje kilka implementacji zestawu zagnieżdżonego, takich jak ten pracować z Doctrine 2