Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/10/2014, 05:07
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: Consulta para obtener el numero de registros coincidentes entre dos tablas

Para guardar una caracteristica binaria como es el caso no hacen falta dos campos.

Si es new no es old luego un solo campo es suficiente,

Nuevo true o false

Es más facil de mantener.

Excepto que haya cosas que no sean ni una cosa ni la otra.


Con dos campos

Código MySQL:
Ver original
  1. SELECT Area,SubArea,count(*) total,
  2.                 SUM(if(tabla14000registros.`Código postal` IS NOT NULL
  3.                      AND tabla14000registros.`número` IS NOT NULL  
  4.                      AND tabla14000registros.`extra` IS NOT NULL, 1,0)) clientes,
  5.                 SUM( IF( tabla14000registros.`new` = 1, 1, 0 ) ) nuevos,
  6.                 SUM( IF( tabla14000registros.`old` = 1, 1, 0 ) ) viejos
  7.            FROM tablaMasde2millones
  8.                      LEFT JOIN tabla14000registros
  9.                          ON tablaMasde2millones.`Código postal`=tabla14000registros.`Código postal`
  10.                              AND tablaMasde2millones.`número`=tabla14000registros.`número`
  11.                              AND tablaMasde2millones.`extra`=tabla14000registros.`extra`
  12.            GROUP BY tablaMasde2millones.Area,tablaMasde2millones.SubArea

Con un campo

Código MySQL:
Ver original
  1. SELECT Area,SubArea,count(*) total,
  2.                 SUM(if(tabla14000registros.`Código postal` IS NOT NULL
  3.                      AND tabla14000registros.`número` IS NOT NULL  
  4.                      AND tabla14000registros.`extra` IS NOT NULL, 1,0)) clientes,
  5.                 SUM( IF( tabla14000registros.`new` = 1, 1, 0 ) ) nuevos,
  6.                 SUM( IF( tabla14000registros.`new` = 1, 0, 1 ) ) viejos
  7.            FROM tablaMasde2millones
  8.                      LEFT JOIN tabla14000registros
  9.                          ON tablaMasde2millones.`Código postal`=tabla14000registros.`Código postal`
  10.                              AND tablaMasde2millones.`número`=tabla14000registros.`número`
  11.                              AND tablaMasde2millones.`extra`=tabla14000registros.`extra`
  12.            GROUP BY tablaMasde2millones.Area,tablaMasde2millones.SubArea

Es mas seguro con un solo campo, al actualizar solo hay que hacer una operación, con dos campos debes forzosamente actualizar dos campos.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.