Ver Mensaje Individual
  #7  
Antiguo 19-10-2023
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Sugerencia:

No mezcles las formas de unir tablas.
Yo utilizaría solo JOINS porque creo que se lee mejor.
Cuando mezclas formas no se entiende a la primera la intención de lo que deseas hacer.

Normalmente en la parte ON (...) se utilizan los campos de la PK de la tabla "padre", aunque a veces no es lo que se desea.

Por otro lado quita del JOIN las partes constantes y muévelas a la parte WHERE. Por ejemplo para el JOIN que haces con NUMELECTOS.
La única excepción que haría es si se trata de optimizar y por lo que sea el motor de base de datos entiende mejor una forma que la otra.

Ejemplo:
Código SQL [-]
select *
from partidos a
/*LEFT?*/ join resultados b on a.codprv = b.codprv and b.partido = a.codigo
left join numelectos c on b.codprv = c.codprv and b.proceso = c.proceso and b.partido = c.partido
where
-- Filtros de PARTIDO
a.codprv = '13' and
a.codigo > 0 and
-- Filtros de Resultados
b.proceso = 42 and
b.mesa in (select codigo
           from mesas
           where
           codprv = a.codprv and
           municipio = 1217) and
-- Filtros de NUMELECTOS
c.tipo = 'M' and
c.circunscripcion = 1217
order by /*Votos DESC,*/ coalesce(c.electos, 0) desc, a.nombre
Responder Con Cita