Hola LOD_Fredy:
Cuando en un registro tienes referencias múltiples sobre otra tabla, lo que puedes hacer es referencias la misma tabla varias veces, utilizando un alias distinto, checa este script para ver si se entiende un poco mejor:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.16 sec)
Query OK, 3 rows affected (0.11 sec)
+----------+-------------+
| idCiudad | descripcion |
+----------+-------------+
| 1 | Uno |
| 2 | Dos |
| 3 | Tres |
+----------+-------------+
-> idCiudad1
int, idCiudad2
int); Query OK, 0 rows affected (0.08 sec)
-> (2, 'Empresa 2', 1, 2), (3, 'Empresa 3', 2, 3), (4, 'Empresa 4', 3, 3);
Query OK, 4 rows affected (0.03 sec)
+-----------+-------------+-----------+-----------+
| idEmpresa | descripcion | idCiudad1 | idCiudad2 |
+-----------+-------------+-----------+-----------+
| 1 | Empresa 1 | 1 | 1 |
| 2 | Empresa 2 | 1 | 2 |
| 3 | Empresa 3 | 2 | 3 |
| 4 | Empresa 4 | 3 | 3 |
+-----------+-------------+-----------+-----------+
mysql
> select E.idEmpresa
, E.descripcion descEmpresa
, -> C1.descripcion descCiudad1, C2.descripcion descCiudad2
-> inner join ciudades C2
on E.idCiudad2
= C2.idCiudad
; +-----------+-------------+-------------+-------------+
| idEmpresa | descEmpresa | descCiudad1 | descCiudad2 |
+-----------+-------------+-------------+-------------+
| 1 | Empresa 1 | Uno | Uno |
| 2 | Empresa 2 | Uno | Dos |
| 3 | Empresa 3 | Dos | Tres |
| 4 | Empresa 4 | Tres | Tres |
+-----------+-------------+-------------+-------------+
Observa que la tabla Ciudades se repite dos veces (como C1, y C2) por lo tanto puedes hacer un inner join con los campos respectivos de la tabla empresa. Creo que es más o menos lo que necesitas, pero si continuas con problemas lo comentas para tratar de ayudarte.
Y como comentario final UTILIZA SIEMPRE JOIN'S (INNER, LEFT O RIGTH según sea el caso) en lugar de listar las tablas en el FROM separadas por comas y haciendo las uniones en el WHERE. Además de mejorar el rendimiento de las consultas, el código queda más legible.
Saludos
Leo.