Tengo una consulta en la que usaba un JOIN para obtener unos datos de otra tabla:
Código SQL:
Ver original
SELECT A.CAMPO1 B.CAMPO2 FROM TABLA1 A 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?