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

[SOLUCIONADO] Consulta con reemplazo de valor

Estas en el tema de Consulta con reemplazo de valor en el foro de Mysql en Foros del Web. Hola amigos... tengo el siguiente problema, al intentar hacer una consulta mas simple de leer para un simple mortal. Como ejemplo a lo que yo ...
  #1 (permalink)  
Antiguo 05/04/2015, 04:34
Avatar de Pabluster2  
Fecha de Ingreso: abril-2015
Mensajes: 3
Antigüedad: 9 años
Puntos: 0
Pregunta Consulta con reemplazo de valor

Hola amigos...

tengo el siguiente problema, al intentar hacer una consulta mas simple de leer para un simple mortal.

Como ejemplo a lo que yo tengo creado en mi db en menor escala

tbl_gerencia
id_gerencia
nom_gerencia

tbl_sup_int
id_supint
nom_supint
id_gerencia(reference tbl_gerencia(id_gerencia))

tbl_camioneta
patente (PK int(6))
odometro
gerencia (reference tbl_gerencia(id_gerencia))
superintendencia (reference tbl_sup_int(id_supint))
num_serie

El asuntillo es que tengo un consulta de busqueda la cual me arroja las tuplas de la tbl_camioneta pero en los campos de gerencia y superintendencia me muestra los datos de los id de las otras tablas, que es lo normal.

Pero lo que quiero es poder modificar esto y que al mostrar los resultados me muestre en el caso de gerencia no el id_gerencia si no mas bien el campo nom_gerencia.

Esto lo he logrado con este select

select *
from tbl_camioneta tb1, tbl_gerencia tb2
where tb1.gerencia=tb2.id_gerencia;

pero al intentar hacerlo con los demas campos me es imposible, y tampoco quiero hacer muchas consultas para reemplazar valor por valor (perdida de performance)

y al intentar hacerlo con un inner join no logro reemplazar los valores... siempre me muestra el valor del id.

SELECT
t1.*
FROM
tbl_camioneta AS t1
INNER JOIN tbl_gerencia AS t2 ON t1.gerencia=t2.id_gerencia
INNER JOIN tbl_sup_int AS t3 ON t1.superintendencia=t3.id_supint;


que puedo hacer??? ya me quedo sin pelo!!!
  #2 (permalink)  
Antiguo 06/04/2015, 08:24
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta con reemplazo de valor

en lugar del

Código SQL:
Ver original
  1. SELECT
  2. t1.*
  3. FROM
  4. tbl_camioneta AS t1
  5. INNER JOIN tbl_gerencia AS t2 ON t1.gerencia=t2.id_gerencia
  6. INNER JOIN tbl_sup_int AS t3 ON t1.superintendencia=t3.id_supint;

Prueba con algo como esto:

Código SQL:
Ver original
  1. SELECT
  2. *
  3. FROM
  4. tbl_camioneta AS t1
  5. INNER JOIN tbl_gerencia AS t2 ON t1.gerencia=t2.id_gerencia
  6. INNER JOIN tbl_sup_int AS t3 ON t1.superintendencia=t3.id_supint;

ahi veras todos los datos que ocupas es nada mas que pongas los que necesitas :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 06/04/2015, 18:11
Avatar de Pabluster2  
Fecha de Ingreso: abril-2015
Mensajes: 3
Antigüedad: 9 años
Puntos: 0
Respuesta: Consulta con reemplazo de valor

Gracias Libras....

Pero con el sentido de aclarar... por que me hace un cambio tan sustantivo el echo de definir el t1.* a solo *???


Nuevamente gracias por la ayuda


Cita:
Iniciado por Libras Ver Mensaje
en lugar del

Código SQL:
Ver original
  1. SELECT
  2. t1.*
  3. FROM
  4. tbl_camioneta AS t1
  5. INNER JOIN tbl_gerencia AS t2 ON t1.gerencia=t2.id_gerencia
  6. INNER JOIN tbl_sup_int AS t3 ON t1.superintendencia=t3.id_supint;

Prueba con algo como esto:

Código SQL:
Ver original
  1. SELECT
  2. *
  3. FROM
  4. tbl_camioneta AS t1
  5. INNER JOIN tbl_gerencia AS t2 ON t1.gerencia=t2.id_gerencia
  6. INNER JOIN tbl_sup_int AS t3 ON t1.superintendencia=t3.id_supint;

ahi veras todos los datos que ocupas es nada mas que pongas los que necesitas :)
  #4 (permalink)  
Antiguo 07/04/2015, 08:45
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta con reemplazo de valor

Veamos en tu ejemplo:

Código SQL:
Ver original
  1. SELECT
  2. t1.*
  3. FROM
  4. tbl_camioneta AS t1
  5. INNER JOIN tbl_gerencia AS t2 ON t1.gerencia=t2.id_gerencia
  6. INNER JOIN tbl_sup_int AS t3 ON t1.superintendencia=t3.id_supint;

Aqui tienes 3 tablas implicadas, t1,t2 y t3, en tu query le estas diciendo que solo te muestre los datos de t1, t1.* quiere decir traeme toda la informacion de la tabla t1(tbl_camioneta), si pusieras t2.* seria, traeme toda la informacion de la tabla t2(en este caso tbl_gerencia)

Si usamos

Código SQL:
Ver original
  1. SELECT
  2. *
  3. FROM
  4. tbl_camioneta AS t1
  5. INNER JOIN tbl_gerencia AS t2 ON t1.gerencia=t2.id_gerencia
  6. INNER JOIN tbl_sup_int AS t3 ON t1.superintendencia=t3.id_supint;
Le estas diciendo que te traiga toda la informacion de la consulta(esto es la informacion de t1 que hace match con t2 y la de t3 que hace match con t2)

por eso es que ves un cambio tan radical con solo cambiar unos pocos caracteres :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: campo, reemplazo, select, tabla, valor
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 10:31.