Coincido completamente con gnzsoloyo, tienes un pésimo diseño de tablas.
El error que tienes en la consulta es tan obvio que estoy seguro que no te has dado cuenta
. Al tratar de hacer dos JOIN's sobre el mismo campo, sobre dos tablas distintas, sería el equivalente a buscar un número par que no sea divisible en entre 2... es decir, simplemente NO EXISTE. Es por eso que siempre obtienes una consulta vacía...
Con el modelo que tenes, lo que debes hacer es un doble LEFT JOIN, uno sobre cada tabla, para la tabla EMPRESAS especificando que el tipo tiene que ser 1 y para la tabla PERSONAS especificando que el campo tipo tiene que ser 2. Te pondría el código SQL, pero no sé si también me lo vayas a agradecer como lo hiciste con gnzsoloyo.
Y algunas recomendaciones adicionales:
1. No hagas las uniones entre tablas con el FROM - WHERE... utilizas JOIN's:
Código:
En lugar de hacer esto
FROM tabla1, tabla2 WHERE tabla1.campo = tabla2.campo
Haz esto:
FROM tabla1 INNER JOIN tabla2 ON tabla1. campo = tabla2.campo
2. La palabra reservada AS para la definición de ALIAS es completamente inútil y ya no forma parte del estándar de SQL.
Saludos
Leo.