Ver Mensaje Individual
  #6 (permalink)  
Antiguo 20/01/2012, 02:48
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: consultas en varias bases de datos

Todas las querys que forman parte de un UNION deben tener el mismo numero de campos, no se puede hacer otra cosa....

No tiene ningun sentido intentar hacer lo que intentas...

Primero seleccionas las empresas, creas un array y lo recorres, muestras los datos de la empresa y construyes la query de los productos de la empresa, la ejecutas y los muestras y así para cada empresa obtenida en la primera query....

Si te empeñas en obtenerlo todo en una sola query debes hacer un JOIN entre Proveedor_DG y cada una de las tablas de productos...

SELECT ...lista de campos... FROM Proveedor_DG INNER JOIN Metalmecanico ON Proveedor_DG.Id_empresa=Metalmecanico.Id_empresa
WHERE ...restriciones...
UNION
SELECT ...lista de campos... FROM Proveedor_DG INNER JOIN Metalmecanico ON Proveedor_DG.Id_empresa=Automotriz.Id_empresa
WHERE ...restriciones...
UNION
...

Pero vas a traer una cantidad ingente de datos repetidos....y fuerzas al servidor a construir la relacion 9 veces de forma innecesaria... a demas ORDER BY no se respetará....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.