sql >> Base de Datos >  >> RDS >> Mysql

La combinación externa izquierda no devuelve todos los registros de la tabla principal

Su cláusula where está convirtiendo la unión externa nuevamente en una interna.

Las filas que no coinciden conservadas por la outer join todos tendrán NULL valores para documentation.status entonces su documentation.status != 3 la condición los filtrará de nuevo (El resultado de la expresión NULL !=3 es unknown no true ).

Para evitar este problema, use

select documentation_reference.ref_docnumber,
       documentation.filename
from   documentation_reference
       left outer join documentation
         on ref_docnumber = documentation.docnumber
            and documentation.status != 3
where  documentation_reference.docnumber = 'TP-036'  

Tenga en cuenta que documentation.status != 3 el predicado se mueve a JOIN condición.