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

LEFT JOIN con IF...

Estas en el tema de LEFT JOIN con IF... en el foro de Mysql en Foros del Web. Hola, Tengo una tabla Maestra: tipo (Puede ser P o F) codigo (Codigo de Producto o Familia) una tabla de Productos codigo texto una tabla ...
  #1 (permalink)  
Antiguo 29/04/2010, 13:43
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 0
LEFT JOIN con IF...

Hola,

Tengo una tabla Maestra:

tipo (Puede ser P o F)
codigo (Codigo de Producto o Familia)

una tabla de Productos

codigo
texto

una tabla de Familias

codigo
texto


En la tabla maestra puede haber esto:
Código:
Tipo	Codigo
P	10000
P	10001
F	01
P	10005
F	05
...

Es posible hacer algun tipo de LEFT JOIN en el que si es
P vaya contra la tabla Productos y si es F contra la de Familia ?
Se puede hacer en MySql una consulta usando algun condicional como IF... ?

Busco esta salida:

Código:
Tipo	Codigo 	Texto
P	10000	Descripcion del 10000
P	10001	Descripcion del 10001
F	01	Descripcion del 01
P	10005	Descripcion del 10005
F	05	Descripcion del 05
Y si es imposible, tambien me lo decis, plis...


Gracias
Savi.
  #2 (permalink)  
Antiguo 29/04/2010, 13:56
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: LEFT JOIN con IF...

Lo que es posible es hacer una tabla en memoria con base en una consulta.

por ejemplo:

Código SQL:
Ver original
  1. SELECT
  2. campos
  3. FROM
  4. (SELECT *FROM tabla WHERE tipo='p') tabla1
  5. LEFT JOIN
  6. (SELECT *FROM tabla WHERE tipo='f') tabla2
  7. ON tabla1.clave=tabla2.clave;

Por ahí puede estar tu solución.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 29/04/2010, 17:30
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: LEFT JOIN con IF...

Yo aquí usaría un UNION ALL

(SELECT Maestra.tipo, Maestra.codigo, Productos.texto FROM Maestra INNER JOIN Productos WHERE Productos.codigo = Maestra.codigo WHERE Maestra.tipo='p')
UNION ALL
(SELECT Maestra.tipo, Maestra.codigo, Familias.texto FROM Maestra INNER JOIN Familias WHERE Familia.codigo = Maestra.codigo WHERE Maestra.tipo='p')
  #4 (permalink)  
Antiguo 02/05/2010, 04:34
 
Fecha de Ingreso: marzo-2010
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: LEFT JOIN con IF...

Hola,

La solucion de Jurena me ha ido perfecta Ahora ya entiendo el sentido de UNION y en este caso va muy bien.

Muchas gracias a todos.
Savi.

Etiquetas: join, left
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 15:49.