Ver Mensaje Individual
  #10 (permalink)  
Antiguo 03/04/2016, 16:37
Avatar de Pentaxeros
Pentaxeros
 
Fecha de Ingreso: mayo-2008
Mensajes: 173
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Union de filas de parametros HIJOS

Os hago un resumen, con el código para hacer pruebas y que resuelve mi problema, por si sirve a alguien en el futuro....
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `productos` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `id_PADRE` int(11) NOT NULL,
  4.   `Texto` varchar(50) CHARACTER SET latin1 NOT NULL,
  5.   `familia` int(11) NOT NULL,
  6.   PRIMARY KEY (`id`)
  7. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=9 ;
  8.  
  9.  
  10. INSERT INTO `productos` (`id`, `id_PADRE`, `Texto`, `familia`) VALUES
  11. (1, 0, 'percha', 1),
  12. (2, 0, 'libro', 2),
  13. (3, 0, 'tenedor', 2),
  14. (4, -1, 'camisa', 2),
  15. (5, 4, 'camisa azul', 2),
  16. (6, 0, 'flores', 2),
  17. (7, 0, 'camisa rosa', 2),
  18. (8, 4, 'camisa verde', 2);

Esta consulta es la que extrae el resultado como quiero.
La idea es que existen líneas que son PADRE y su valor id_PADRE es -1

Luego sus hijos en la columna id_PADRE apunta al id de su padre.

El objetivo es que al listar los hijos siempre salgan a continuación del padre independientemente del orden.

Haciendo una búsqueda recurrente desde Php podía, pero era un lio a la hora de paginar y ver totales de líneas etc.

Esta solución funciona.

Código MySQL:
Ver original
  1. *,
  2. WHEN id_PADRE < 1 THEN id
  3. ELSE id_PADRE
  4. END) idX,
  5. (SELECT ppp.Texto FROM productos ppp WHERE ppp.id=idX) textoX
  6.  
  7. FROM productos p
  8.  
  9. textoX DESC,
  10. idX ASC,
  11. p.id_PADRE ASC

GRACIAS

Última edición por gnzsoloyo; 03/04/2016 a las 20:16