Ver Mensaje Individual
  #6 (permalink)  
Antiguo 08/09/2012, 11:53
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: SELECT con GROUP BY recursivo

Cita:
Tienes que invocar dos veces a la misma tabla, con alias, y relacionar la segunda acon el primero usando LEFT JOIN.
Wow, nunca se me ubiese ocurrido :/ pense que talvez habria alguna instruccion que desconocia o algo asi, pero en fin, esos son los trucos que te da la experiencia supongo.

Código MySQL:
Ver original
  1.    T1.NTM, IF( T1.CTM =0, T1.IDT, T1.CTM ) orden
  2.   FROM
  3.      tutabla T1
  4.    tutabla T2
  5.   ON
  6.       T1.IDT = T2.CTM
  7.      T1.IDT
  8.      orden, T1.CTM

muchas gracias por el ejemplo!! lo adapte un poco para que no me traiga el campo orden y poder hacer luego un corte de control en php.

Código MySQL:
Ver original
  1. SELECT T1.NTM, T1.CTM
  2. FROM tmc T1
  3. LEFT JOIN tmc T2 ON T1.IDT = T2.CTM
  4. GROUP BY T1.IDT
  5. ORDER BY IF( T1.CTM =0, T1.IDT, T1.CTM ) , T1.CTM

Cita:
Pero también tengo que hacerte una pregunta. ¿Por qué dejar una estructura jerárquica para una base que no parece que vaya a serlo? Una tabla categorías y una tabla subcategorías que dependen de las categorías, y un campo FKsubcat (o una tabla nueva subcatproducto) y tendrás lo mismo. Las consultas serán más fáciles, pero, claro, eso solo en el caso de que haya un único nivel y que cada categoría tenga al menos una categoría y todos los productos o lo que sean se relacionen con subcategoría. Ordenar sería más fácil, haciéndolo primero por cat y luego por subcat.
veras, (no creas que no me lo he planteado) el tema es el siguiente, no son productos, son los tipos de movimientos posibles en un sistema de caja diaria, (como maximo habra 100 tipos por decir una locura) y gastar dos tablas para guardar en una 10 registros y en la otra 50 me parece un desproposito.

¿si son tipos de movimientos que es eso de categoria maestra, que nesesidad de hacer esto? podrias preguntarte, bien, es una cuestion estetica. los tipos los muestro en un <selecty> las categorias, osea los tipos maestros son los <optgroup> y los tipos comunes sus respectivos <option>.

muchas gracias por la ayuda con la consulta que publique (sin desmerecer para nada las suyas ya que es una adaptacion a mi caso particular) logre solucionarlo.

les dejo karmita a ambos XD jaja
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios