Si necesita consultas jerárquicas en bases de datos que no son compatibles con el Factoring de subconsulta recursiva (ver APC's answer), una alternativa de baja tecnología es codificar la jerarquía en una clave separada. Por supuesto, esto solo funcionará si puede controlar el proceso de actualización de la tabla y volver a escribir la clave después de las actualizaciones principales.
Por ejemplo:
FLAT_HIER_ID NODE_ID PARENT_NODE_ID
~N1 N1
~N1~N2 N2 N1
~N1~N2~N3 N3 N2
~N1~N2~N4 N4 N2
No
muy elegante, pero le da una ruta para realizar consultas.
Otra opción (probablemente mejor) es utilizar el método "Conjunto anidado modelo". Este es el método utilizado en Fogbugz para manejar las consultas de subcajas en MSSQL, MySQL y MS Access.
El modelo se explica en:
http://www.developersdex.com/gurus/articles/112.asp
El uso del método en FogBugz se describe en:
http://www.fogcreek.com/FogBugz/blog/post/Subcases-and-Hierarchy.aspx
No hay ninguna sintaxis de consulta jerárquica ANSI que I' Estoy consciente de que, al menos, es diferente entre SQL Server, MySQL y Postgres. –