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

SQL relacion de tablas

Estas en el tema de SQL relacion de tablas en el foro de Bases de Datos General en Foros del Web. Necesito ayuda con una cosulta tengo 4 tablas Tabla "S" S SNOMBRE SITUACION CIUDAD S1 SALAZAR 20 LONDRES Tabla "P" P PNOMBRE COLOR PESO CIUDAD ...
  #1 (permalink)  
Antiguo 22/05/2004, 17:33
 
Fecha de Ingreso: septiembre-2003
Ubicación: Morelos
Mensajes: 83
Antigüedad: 20 años, 7 meses
Puntos: 0
SQL relacion de tablas

Necesito ayuda con una cosulta tengo 4 tablas

Tabla "S"
S SNOMBRE SITUACION CIUDAD
S1 SALAZAR 20 LONDRES

Tabla "P"
P PNOMBRE COLOR PESO CIUDAD
P1 TUERCA ROJO 12 LONDRES

Tabla "J"
J JNOMBRE CIUDAD
J1 CLASIFICADOR PARIS

Tabla "SPJ"
S P J
S1 P1 J1

Obviamente tengo mas campos pero estos son los que interesan
bueno y necesito hacer la siguiente consulta:
Quien Fabrica clasificadores en paris que usen tuercas hechas en londres. Y el resultado seria Salazar, se que lo tengo que hacer con consultas anidadas pero no me sale podrian hecarme la mano? Hice una consulta pero esta super larga y el profesor dijo que habia una forma mas facil y corta.
  #2 (permalink)  
Antiguo 23/05/2004, 13:22
 
Fecha de Ingreso: julio-2003
Ubicación: Donostia-San Sebastián
Mensajes: 129
Antigüedad: 20 años, 10 meses
Puntos: 0
Prueba utilizando alguna de estas dos opciones que te doy:

SELECT S.SNOMBRE
FROM ((S INNER JOIN SPJ ON S.S=SPJ.S)
INNER JOIN J ON SPJ.J=J.J)
INNER JOIN P ON SPJ.P=P.P
WHERE J.CIUDAD="PARIS" AND J.JNOMBRE="CLASIFICADOR"
AND P.PNOMBRE="TUERCA" AND P.CIUDAD="LONDRES"

o

SELECT S.SNOMBRE
FROM S NATURAL JOIN SPJ
WHERE SPJ.J = (SELECT J
FROM J
WHERE J.CIUDAD="PARIS" AND
J.JNOMBRE="CLASIFICADOR")
AND SPJ.P = (SELECT P
FROM P
WHERE P.PNOMBRE="TUERCA" AND
P.CIUDAD="LONDRES")

En el primer caso puedes cambiar todos los "inner join" por "natural join" y así no tienes que poner los "on" porque en tu caso son lo mismo.
Espero que te sirva
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 08:02.