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.