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

Consulta usando JOIN en SQL (es facil pero me enredo)

Estas en el tema de Consulta usando JOIN en SQL (es facil pero me enredo) en el foro de Mysql en Foros del Web. Chicos necesito de su ayuda. tengo 2 tablas: Producto : idProducto descripcionProducto PrecioProducto EstadoProducto. y la otra es: Componente idComponente idProducto CodigoComponente Cantidad. el enredo ...
  #1 (permalink)  
Antiguo 05/10/2011, 14:30
 
Fecha de Ingreso: diciembre-2010
Mensajes: 6
Antigüedad: 13 años, 4 meses
Puntos: 0
Exclamación Consulta usando JOIN en SQL (es facil pero me enredo)

Chicos necesito de su ayuda.

tengo 2 tablas:

Producto:
idProducto
descripcionProducto
PrecioProducto
EstadoProducto.

y la otra es:

Componente
idComponente
idProducto
CodigoComponente
Cantidad.


el enredo es el siguiente.
deseo mostrar todos los datos de la tabla producto y todos los datos de la tabla componente PERO como producto.idproducto = componente.idProducto
NECESITO ver la descripcion del componente pero sacandolo (o llamandolo) de la tabla producto (El códigocomponente lo obtiene mediante el idProducto)


les voy a poner un ejemplo.

tengo un monitor, un mouse, un teclado, y una torre que cada una de estas esta registrada en la tabla producto.
componente lo que almacena es una relacion entre ellas es decir.
Una torre de PC esta "compuesta" por un mouse, un teclado, etcc...
nose si me entienden.

yo hice mi consulta asi:

select
Producto.idProducto
Producto.descripcionProducto
Producto.PrecioProducto
Producto.EstadoProducto.
Componente.idComponente
Componente.idProducto
Componente.CodigoComponente
Componente.Cantidad
from
producto, componente
where
Producto.idProducto=Componente.idProducto

pero no hayo como poner que me muestre la descripción (nombre) de los artículos que tengo en componente.

Espero me ayuden...
  #2 (permalink)  
Antiguo 05/10/2011, 15:19
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: Consulta usando JOIN en SQL (es facil pero me enredo)

Te falta el Join para unir las dos tablas.

Sería mas o menos así:
Código MySQL:
Ver original
  1. p.idProducto, p.descripcionProducto, p.PrecioProducto, p.EstadoProducto,
  2. c.idComponente, c.idProducto, c.CodigoComponente, c.Cantidad
  3. FROM producto p
  4. JOIN componente c
  5.     ON p.idProducto = c.idProducto

Si alguno de los valores de la tabla componentes prevees que va a tener un valor null, deberías usar LEFT JOIN en vez de JOIN.

Aún así te sugiero que busques información al respecto.

PD.: No lo he probado, revisa la ortografía y si los nombres corresponden con los que tienes realmente en tus tablas.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #3 (permalink)  
Antiguo 06/10/2011, 07:47
 
Fecha de Ingreso: diciembre-2010
Mensajes: 6
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Consulta usando JOIN en SQL (es facil pero me enredo)

sabes que sigo con el problema...
no puedo obtener la descripción del producto que esta en la tabla componente...
me tinca que me explique mal por eso se me ha complicado sacar el select
  #4 (permalink)  
Antiguo 06/10/2011, 08:07
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta usando JOIN en SQL (es facil pero me enredo)

No debería generarte ningún problema. Es un simple INNER JOIN, como ya te dijeron.
Lo que te sugiero es no repetir datos y usar alias para las tablas, para no coplicar la escritura inutilmente:
Código MySQL:
Ver original
  1.     P.idProducto,
  2.     P.descripcionProducto,
  3.     P.PrecioProducto
  4.     P.EstadoProducto,
  5.     C.idComponente,
  6.     C.CodigoComponente,
  7.     C.Cantidad
  8. FROM producto P INNER JOIN componente ON C.idProducto = P.idProducto
Si no te devuelve nada es que no existe ningún componente asignado a ningún producto o viceversa.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 14/10/2011, 08:38
 
Fecha de Ingreso: diciembre-2010
Mensajes: 6
Antigüedad: 13 años, 4 meses
Puntos: 0
[SOLUCIONADO] Consulta usando JOIN en SQL (es facil pero me enredo)

SOLUCIONADO
ya lo hice con ayuda pero se los dejo para que otro lo tenga a mano...
lo que se necesitaba es mostrar la descripción de un producto pero que esta en otra tabla.... y es asi:


Cita:
SELECT
P.idProducto,
P.descripcionProducto,
P.PrecioProducto
P.EstadoProducto,
C.idComponente,
C.CodigoComponente,
C.Cantidad
FROM producto P
INNER JOIN componente C ON P.idProducto = C.idProducto
INNER JOIN producto R ON C.CodigoComponente=R.idProducto

cuando uno usa los JOIN se debe generar un producto cartesiano....
es por eso que no me salia porque faltaba el JOIN que unia el codigo componte con el id del producto...
y ahora muestro la descripcion del prodcuto pero sacandolo de otra tabla.. jeje



Saludos

Etiquetas: facil, join, select, sql, tabla
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 09:20.