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

duda sobre el uso de inner join

Estas en el tema de duda sobre el uso de inner join en el foro de Mysql en Foros del Web. Hola estoy practicando ha hacer consultas con los joins y tengo el siguiente modelo E-R Bien, si yo quiero obtener el codigo de equipo computo, ...
  #1 (permalink)  
Antiguo 05/01/2010, 12:45
Avatar de Copia  
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 5 meses
Puntos: 4
duda sobre el uso de inner join

Hola estoy practicando ha hacer consultas con los joins y tengo el siguiente modelo E-R



Bien, si yo quiero obtener el codigo de equipo computo, su descripcion mas los programas que tiene instalados tengo este codigo:

Código:
select ec.codigoequipocomputo, ec.descripcion, p.descripcion
from programasinstalados pi
inner join programas p on pi.codigoprograma=p.codigoprograma
inner join equipocomputo ec on pi.codigoequipocomputo=ec.codigoequipocomputo
where ec.codigoequipocomputo=14;
Hasta ahora entiendo que con inner join lo que se hace es relacionar tablas al rededor de una principal, como en la consulta anterior que es programas.

Ahora bien si a la consulta le quiero añadir el lugar en donde esta la computador, como lo hago, puesto que no hay relacion directa entre programasinstalados y ubicacion.

intente hacer algo como esto:
Código:
select ec.codigoequipocomputo, ec.descripcion, p.descripcion
from programasinstalados pi
inner join programas p on pi.codigoprograma=p.codigoprograma
inner join equipocomputo ec on (pi.codigoequipocomputo=ec.codigoequipocomputo inner join ubicacion u on
                                ec.codigoequipocomputo=u.codigoequipocomputo)
where ec.codigoequipocomputo=14;
pero no me funciona.
  #2 (permalink)  
Antiguo 06/01/2010, 01:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: duda sobre el uso de inner join

No sé qué tipo de motor usas, si InnoDB o MyIsam. Si usas MyIsam, creo que te bastará con esto. Si usas InnoDB deberás establecer la relación entre CodigoUbicacion de equipo de cómputo y CodigoUbicacion de Ubicacion:
Código SQL:
Ver original
  1. SELECT ec.codigoequipocomputo, ec.descripcion, p.descripcion, u.Ciudad
  2. FROM programasinstalados pi INNER JOIN programas p ON pi.codigoprograma=p.codigoprograma
  3. INNER JOIN equipocomputo ec ON pi.codigoequipocomputo=ec.codigoequipocomputo
  4.  INNER JOIN ubicacion u ON ec.CodigoUbicacion=u.CodigoUbicacion)
  5. WHERE ec.codigoequipocomputo=14;

Etiquetas: join
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:15.