Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/07/2013, 09:13
Avatar de qvixote
qvixote
 
Fecha de Ingreso: marzo-2008
Mensajes: 79
Antigüedad: 16 años, 1 mes
Puntos: 2
LEFT JOIN que aumenta la cantidad de resultados

Holas!

Tengo una consulta en la que usaba un JOIN para obtener unos datos de otra tabla:

Código SQL:
Ver original
  1. SELECT
  2. A.CAMPO1
  3. B.CAMPO2
  4.  
  5. FROM TABLA1 A
  6. JOIN TABLA2 B ON TABLA2.COMUNA = TABLA1.COMUNA AND TABLA2.ANIO = TABLA1.ANIO

Pero me estaba trayendo menos registros y me di cuenta de que era porque habían unos registros de la tabla A que tenían una comuna que no existe en la tabla B, por lo que obviamente no se contaban esos registros en el JOIN.

Como yo quiero que esos registros se incluyan de todas formas, cambié el JOIN por LEFT JOIN, con lo que el número de registros aumentó, pero demasiado!

La cardinalidad de la tabla1 es de 7941, al hacer le consulta con JOIN la cantidad de registros era 7266. Al hacer la consulta con LEFT JOIN yo esperaba que la cantidad de registros fueran 7941, los mismos que la cardinalidad de la tabla1, pero fueron 7981, o sea, 40 registros más.

¿Cómo es esto posible? ¿Alguna idea?

Última edición por gnzsoloyo; 23/07/2013 a las 09:21