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

Dudas Join

Estas en el tema de Dudas Join en el foro de Bases de Datos General en Foros del Web. Tengo las siguientes tablas: ArticulosLin(codarticulo, talla, color, codbarras, ...) y Articulos(codarticulo, descripcion, ...) En la primera la clave la componen los campos codarticulo, talla y ...
  #1 (permalink)  
Antiguo 07/06/2007, 14:55
 
Fecha de Ingreso: octubre-2006
Mensajes: 53
Antigüedad: 18 años
Puntos: 0
Dudas Join

Tengo las siguientes tablas: ArticulosLin(codarticulo, talla, color, codbarras, ...) y Articulos(codarticulo, descripcion, ...)

En la primera la clave la componen los campos codarticulo, talla y color mientras que en la primera la clave es codarticulo. De modo que en la primera la clave la forman tres campos y en la segunda uno.

La base de datos no es mía y no la puedo modificar, me tengo que atener al diseño que existe.

Me gustaría saber cómo hacer el join de ambas tablas, ya que según me dicen, en la primera tabla, se puede tener varios artículos con el mismo codarticulo, pero no dos con el mismo codaticulo, tall y color, de ahi que se usen los tres campos.

Esto me plantea la duda de cuando haga el join, ya que si hago pongo ArticulosLin.codarticulo = articulos.codarticulo no sé cual será realmente el resultado, ya que no aseguro que sea el de la talla y color que realmente quiero. ¿Pero que otra forma de hacer el join tengo?

Esto viene porque para realizar la búsqueda sólo parto del codBarras (no puedo especificar ni talla ni color, es para una aplicación en la que el usuario sólo leerá códigos de barras) de ArticulosLin, y según me han comentado, para un mismo código de barras puede haber varios codarículos, de ahí la necesidad de identificar al artículo mediante el codartículo, talla y color.

El problema es cómo obtener la descripción de dicho artículo entonces, pues al hacer el join, si lo hago como lo he comentado anteriormente, tal vez no sea el artículo que realmente deseo.

Yo creo que lo lógico era dejar al código de barras como clave ya que es el dato de partida y el único que se conoce, pero tal como estan las cosas no sé realmente como obtener la descripción del artículo que realmente se quiere.

La consulta que tenía pensada sería:


Select Articulos.codArticulo, descripcion FROM ArticulosLin, Articulos WHERE
ArticulosLin.codArticulo = Articulos.codArticulo AND ArticulosLin.codBarras = 'xxx'

Pero no entra en juego ni talla ni color, y realmente creo que se necesitan, pero si articulos no tiene estos campos, no se puede hacer un join...

Finalmente me gustaría saber si alguien me podría decir la forma de hacer un join de forma genérica cuando en una de las tablas la clave la forman varios campos y en la otra solo uno. Tal vez sea un problema común, pero ahora no sé la respuesta. ¿O no se puede si ambas tablas no tienen la clave formada por los mismos campos?

Para sería muy interesante si se respondiese de forma genérica, para aprender, aunque también agradecería una respuesta algo más concreta para este caso, ya que es algo que en principio me urge.




Siento haberme alargado pero me interesa resolver este problema.
Gracias.
Daimroc.
  #2 (permalink)  
Antiguo 08/06/2007, 12:13
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 19 años, 2 meses
Puntos: 55
Re: Dudas Join

el join se usa en el from asi
select t1.*,t2.* from tabla1 as t1 join tabla2 as t2

una mejor forma almenos para mi es hacer los joins en el where
select * from tabla1 as t1, tabla2 as t2 where t1.id_categoria=t2.id

recordar q los joins son el producto carteciano de las tablas ;)
saludos
__________________
Degiovanni Emilio
developtus.com
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:20.