Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Seleccionar registros de tabla

Estas en el tema de Seleccionar registros de tabla en el foro de Mysql en Foros del Web. Hola a todos, tengo la siguiente tabla Código HTML: [B]Id Codi IdCo Nomb[/B] 2 HOM NULL LINEA PARA HOMBRE 3 MUJ NULL LINEA PARA MUJER ...
  #1 (permalink)  
Antiguo 05/04/2015, 21:17
 
Fecha de Ingreso: diciembre-2010
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 1
Pregunta Seleccionar registros de tabla

Hola a todos, tengo la siguiente tabla

Código HTML:
[B]Id		Codi		IdCo		Nomb[/B]
2		HOM		NULL		LINEA PARA HOMBRE
3		MUJ		NULL		LINEA PARA MUJER
4		CAL		2		CALZADO UNISEX
5		BIL		2		BILLETERAS
6		CIN		2		CINTURONES
7		LLA		2		LLAVEROS
9		MCAL		3		CALZADO TACONES ALTOS
10		ACC		NULL		ACCESORIOS
Tengo 2 inconvenientes para que por favor me colaboren...
1. ¿Como hago para que me de este resultado?

Código HTML:
[B]CÓDIGO		DESCRIPCIÓN[/B]
ACC		ACCESORIOS
HOM		LINEA PARA HOMBRE
  BIL		  BILLETERAS
  CAL		  CALZADO UNISEX
  CIN		  CINTURONES
  LLA		  LLAVEROS
MUJ		LINEA PARA MUJER
MCAL		CALZADO TACONES ALTOS
En ese mismo orden alfabetico....

2. Teniendo en cuenta el resultado anterior y como están almacenados los datos en la tabla... como puedo hacer una consulta que me arroje el `Codi` de la fila que va antes de xxxxx, puede ser de CIN CINTURONES --> (Resultado: CAL CALZADO UNISEX)

GRACIAS DE ANTEMANO...
  #2 (permalink)  
Antiguo 05/04/2015, 21:30
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Seleccionar registros de tabla

No parece demasiado complejo...
Es una consulta anidada de una tabla consigo misma en case a una relación padre->hijo, con un ordenamiento por la misma relación.
¿Intentaste algo al menos? Porque aquí siempre pedimos que nos muestren algo de esfuerzo propio. No es la idea hacer el trabajo ajeno, sino guiarlos para que lo logren.

Postea lo que intentaste, y si no lo hiciste, hazlo ahora. Así veremos que tanta experiencia tienes en SQL y que cosas ya probaste. Con eso evitaremos sugerencias ya usadas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 06/04/2015, 13:36
 
Fecha de Ingreso: diciembre-2010
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Seleccionar registros de tabla

en cuanto a la primera consulta:

SELECT B1.*,CONCAT(COALESCE((SELECT B2.`Codi` FROM `categorias` B2 WHERE B2.`Id`=B1.`IdCo`),B1.`Codi`),IF(B1.`IdCo` IS NULL,'',B1.`Codi`))`Orde` FROM `categorias` B1 ORDER BY `Orde` ASC

y me arroja la tabla como quiero, pues ordena segun la fila order que es esta:

Código HTML:
[B]Orde*[/B]
ACC
HOM
HOMBIL
HOMCAL
HOMCIN
HOMLLA
MUJ
MUJMCAL
y para buscar el valor anterior:

SELECT B1.*,CONCAT(COALESCE((SELECT B2.`Codi` FROM `categorias` B2 WHERE B2.`Id`=B1.`IdCo`),B1.`Codi`),IF(B1.`IdCo` IS NULL,'',B1.`Codi`))`Orde` FROM `categorias` B1 HAVING `Orde`<'HOMCIN' ORDER BY `Orde` DESC LIMIT 1

sera que hay otra forma mas sencilla de hacerlo ???

Última edición por royerromero; 06/04/2015 a las 15:47

Etiquetas: select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:20.