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

que hace esta consulta??

Estas en el tema de que hace esta consulta?? en el foro de Bases de Datos General en Foros del Web. hola , junto con saludarlos me dirijo a uds , con una duda en una consulta en la base de datos en la cual estoy ...
  #1 (permalink)  
Antiguo 07/04/2011, 16:30
Avatar de xaskon23  
Fecha de Ingreso: febrero-2011
Mensajes: 61
Antigüedad: 13 años, 9 meses
Puntos: 0
que hace esta consulta??

hola , junto con saludarlos me dirijo a uds , con una duda en una consulta en la base de datos en la cual estoy asiendo una mantencion, y no estoy muy seguro de lo que hace.

la consulta es la siguiente :

Código:
SELECT movimiento.Cab_cod_inter FROM movimiento inner join
 clase on clase.Clase_cod=movimiento.Clase_cod_FK inner join
 subfamilia on subfamilia.SubFam_cod=clase.SubFam_cod_FK  inner join
 recinto  on movimiento.Recinto_cod_FK=recinto.Recinto_cod inner join 
area on area.Area_cod=subfamilia.Area_cod_FK 
WHERE area.Area_cod=2 order by movimiento.Cab_cod_inter
mi inquietud es con respecto a las uniones que hacen los inner join y los on , la cual me tiene un poco enredado. alguien sabe mas o menos lo que hace?? o de adonde toma los valores para crear la consulta.

de antemano muchas gracias ...
__________________
" "Seamos realistas y hagamos lo imposible." "
  #2 (permalink)  
Antiguo 08/04/2011, 00:34
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 10 meses
Puntos: 89
Respuesta: que hace esta consulta??

Los INNER JOIN une las tablas citadas por el campo descrito en el ON.

Por ejemplo,

Código MySQL:
Ver original
  1. SELECT movimiento.Cab_cod_inter
  2. FROM movimiento
  3. inner join clase on
  4. clase.Clase_cod=movimiento.Clase_cod_FK

Une las tablas movimiento y clase por el campo clase_cod de tal manera que te enseña los registros de una tabla que están en la otra.

Por ejemplo, si en movimiento tienes

ID, NOMBRE, CLASE_COD_FK
1, Mov1, 1
2, Mov2, -
3, Mov3, 1
4, Mov4, 2

Y en clase tienes CLASE_COD, NOMBRE
1, Clase1
2, Clase2

El resultado del INNER JOIN de antes sería

1, Mov1, 1, 1, Clase1
3, Mov3, 1, 1, Clase1
4, Mov4, 2, 1, Clase2


P.D. Los campos del ON deberían ponerse al revés, primero la primera tabla y segundo la segunda, o sea
movimiento.Clase_cod_FK = clase.Clase_cod

Última edición por Heimish2000; 08/04/2011 a las 00:41
  #3 (permalink)  
Antiguo 08/04/2011, 09:01
Avatar de xaskon23  
Fecha de Ingreso: febrero-2011
Mensajes: 61
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: que hace esta consulta??

gracias , con esta aclaración pude comprender la estructura de esta consulta y lo que hace , en realidad muchas gracias... se agradece el tiempo tomado para responder dicha inquietud.
__________________
" "Seamos realistas y hagamos lo imposible." "
  #4 (permalink)  
Antiguo 08/04/2011, 09:03
Avatar de xaskon23  
Fecha de Ingreso: febrero-2011
Mensajes: 61
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: que hace esta consulta??

aora que tengo cargada la base de datos en el servidor mysql , me eh dado cuenta que existe un valor (clase) que no esta presente en algunos registros , lo que desencadena que vuelva un valor vacio a los requerimientos especificos .

por casualidad alguien sabe como se puede sacar , o que no tome el valor del campo clase en la consulta ?? o ke no interfiera??
__________________
" "Seamos realistas y hagamos lo imposible." "
  #5 (permalink)  
Antiguo 08/04/2011, 13:59
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: que hace esta consulta??

En lugar de usar un inner join con tu tabla clase puedes hacer un left join y con eso si los valores de clase van nulos en algunos casos no interfiere en tus resultados...

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: bases-de-datos
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 14:21.