Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/01/2012, 16:31
Avatar de Mikimoto74
Mikimoto74
 
Fecha de Ingreso: enero-2005
Mensajes: 88
Antigüedad: 19 años, 3 meses
Puntos: 2
Respuesta: Diferenciar origen de los datos obtenidos con INNER JOIN

Creo que deberías replantearte usar una tabla (no base de datos) en vez de dos. No hay problema porque queden campos nulos. Más que nada en el caso en el que la mayoría de las consultas se refieran a ambas tablas. Al usar solo una, se reduciría la carga del servidor mysql.

De todas formas es posible trabajar con ambas tablas y diferenciar sus datos creando un campo personalizado:

SELECT s.*, a.nombre, 'autonomo' AS tipo_vendedor
FROM stock_productos s
INNER JOIN vendedores_autonomos a
ON a.id_vendedor = a.id
UNION
SELECT s.*, f.nombre, 'fijo' AS tipo_vendedor
FROM stock_productos s
INNER JOIN vendedores_fijos f
ON s.id_vendedor = f.id

Nota: En la unión los campos han de coincidir. Si quieres añadir los que tiene de más la tabla vendedores_fijos, en el select de vendedores_autónomos tendrás que añadir algo como: NULL AS sueldo, o '' AS sueldo

Última edición por Mikimoto74; 20/01/2012 a las 16:38