Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/09/2011, 08:31
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: mostrar las dos ciudades (dir empresa y fiscal) de una empresa

Lo que te comenta el compañero gnzsoloyo te lo hice notar desde el primer post

Cita:
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.
Ahora bien, estás entendiendo mal el concepto de duplicar las tablas con alias:

Si tu tabla "Principal" o base es EMPRESAS esta NO TIENES QUE DUPLICARLA, las que tienes que duplicar son las tablas que hacen referencia a los campos referenciados en esta tabla

Código:
FROM empresas EM
INNER JOIN ciudades CI1 ON EM.ci_id = CI1.ci_id
LEFT JOIN ciudades CI2 ON EM.ci_idf = CI2.ci_id
INNER JOIN usuarios US1 ON EM.us_id = US1.us_id
LEFT JOIN usuarios US2 ON EM.us_id2 = US1.us_id
En tu consulta tienes TRES VECES DECLARADA TU TABLA EMPRESAS

Código:
empresas AS EM1
empresas AS EM2
empresas AS EM
Lo cual es incorrecto. Trata de convertir tu consulta a utilizar solamente una tabla en el FROM y las demás como JOIN's, de tal manera que tampoco en el WHERE existan condiciones de unión (todas deberían estar en el ON)

Saludos
Leo