Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/01/2012, 02:03
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Consulta jerárquica

Si X es el padre que buscas


Código MySQL:
Ver original
  1. SELECT id,
  2.    negocio
  3. FROM subcategorias_negocios
  4. WHERE subcategoria=X
  5. SELECT sn.id,
  6.    sn.negocio
  7. FROM subcategorias_negocios sn INNER JOIN categorias c
  8.     ON sn.subcategoria=c.id
  9. WHERE c.pariente=X
  10. SELECT sn.id,
  11.   sn.negocio
  12. FROM subcategorias_negocios sn INNER JOIN categorias c
  13.   ON sn.subcategoria=c.id
  14. WHERE c.pariente IN (SELECT c.id
  15.                               FROM categorias c
  16.                                WHERE c.pariente=X)
  17. SELECT sn.id,
  18.   sn.negocio
  19. FROM subcategorias_negocios sn INNER JOIN categorias c
  20.   ON sn.subcategoria=c.id
  21. WHERE c.pariente IN (SELECT c.id
  22.                          FROM categorias c
  23.                          WHERE pariente IN (SELECT c.id
  24.                                              FROM categorias c
  25.                                                        WHERE c.pariente=X));

Si padre=X esta consulta te dará los negocios de X y sus decendientes.

Queda claro que esto solo sirve para una estructura como la que planteas donde hay solo 4 y no mas niveles jerarquicos. Y no existen descendientes sin ascendentes (excepto en el primer nivel).
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 16/01/2012 a las 02:25