Seit MySQL 8 lassen sich Baumstrukturen und andere hierarchische Daten über WITH RECURSIVE direkt in SQL auflösen, ohne dafür rekursive Anwendungslogik oder eine feste Anzahl von Self-Joins zu benötigen. Die grundlegende Syntax folgt dem SQL-Standard, doch MySQL bringt einige eigene Implementierungsdetails mit, von der internen Umsetzung als UNION-Schleife bis zum konfigurierbaren Endlosschleifen-Schutz über cte_max_recursion_depth. Dieser Artikel zeigt, wie rekursive CTEs in MySQL intern arbeiten, wo typische Fallstricke liegen und wie sich ein
Magento-Kategoriebaum damit praktisch und performant auflösen lässt.