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

Uso del inner join en 3 tablas.............

Estas en el tema de Uso del inner join en 3 tablas............. en el foro de Bases de Datos General en Foros del Web. hola..... tengo un problema para una consulta en tres tablas: -unidad_consumo(id_categoria,correlativo,nombre) -existencia(id_categoria,correlativo,id_bodega,exis temcia) -bodega(id_bodega,dirrecion) al generar una consulta me genera esto: unidad_consumo.nombre| bodega.id_bodega | existencia.existencia ...
  #1 (permalink)  
Antiguo 10/08/2004, 13:00
 
Fecha de Ingreso: mayo-2004
Mensajes: 14
Antigüedad: 20 años
Puntos: 0
Pregunta Uso del inner join en 3 tablas.............

hola.....
tengo un problema para una consulta en tres tablas:
-unidad_consumo(id_categoria,correlativo,nombre)
-existencia(id_categoria,correlativo,id_bodega,exis temcia)
-bodega(id_bodega,dirrecion)

al generar una consulta me genera esto:

unidad_consumo.nombre| bodega.id_bodega | existencia.existencia
----------------------------------------------------------------
producto A | 1 | 100
----------------------------------------------------------------
producto A | 2 | 300
----------------------------------------------------------------
producto B | 1 | 50
----------------------------------------------------------------
esto es para darle un ejemplo de lo que hago:

pero me gustria que fuera asi:

unidad_consumo.nombre| bodega 1 | bodega 2
----------------------------------------------
producto A | 100 | 300
----------------------------------------------
producto B | 50 | 0
-----------------------------------------------

bueno si algun maestro en sql me pueda ayudar ....estaria eternamente agradecido...porque he tratado de hacer esto pero no me resulta...
chau y gracias por todo
  #2 (permalink)  
Antiguo 11/08/2004, 02:35
 
Fecha de Ingreso: junio-2004
Ubicación: Castellón, España
Mensajes: 98
Antigüedad: 19 años, 10 meses
Puntos: 0
¿Qué base de datos estás utilizando?
  #3 (permalink)  
Antiguo 11/08/2004, 05:34
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Si usas MySql 4.1 o superior, prueba esta sentencia:
Código:
select a.nombre, (select b.existencia  
                    from existencia b
                   where b.id_categoria = a.id_categoria)
from unidad_consumo a
La verdad que nunca lo he probado, pero remirando la documentación del MySql se me ha ocurrido esta posibilidad.
Por cierto, la tercera tabla (bodega) realmente no la necesitas para hacer esto, salvo que quieras ver la dirección de la bodega.

Si usas otro gestor diferente a MySql (Oracle, SqlServer, DB2) seguramente exista algo equivalente.
Si esto no funciona, a mi entender, todo pasa por la programación.
Un saludo.
  #4 (permalink)  
Antiguo 11/08/2004, 08:07
 
Fecha de Ingreso: mayo-2004
Mensajes: 14
Antigüedad: 20 años
Puntos: 0
hola....
estoy utilizando MySql 5.0.0
hola Vice
hice lo que me indicas y a verdad es que me arrojo un error
ERROR 1241 (21000):Subquery returns more than 1 row
osea que me devuelve mas de un registro
  #5 (permalink)  
Antiguo 12/08/2004, 02:56
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Vale, me imaginaba que de haber algún problema irían por ahí los tiros, porque en la documentación no encontré nada de que tuviera que devolver una única fila.
Siendo así, lo que necesitas sólo se puede resolver con programación, pues no puedes hacer que una select devuelva un número de campos variable.
Un saludo.
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 19:09.