sql >> Database >  >> RDS >> Mysql

Left Outer Join retourneert niet alle records uit de primaire tabel

Je waar-clausule zet de buitenste join terug in een binnenste.

De niet-overeenkomende rijen die worden bewaard door de outer join hebben allemaal NULL waarden voor documentation.status dus uw documentation.status != 3 condition zal deze weer uitfilteren (Het resultaat van de uitdrukking NULL !=3 is unknown niet true ).

Gebruik

. om dit probleem te voorkomen
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'  

Merk op dat de documentation.status != 3 predikaat wordt verplaatst naar de JOIN staat.



  1. Hoe kan ik het verschil tussen hoofdletters en kleine letters negeren bij het zoeken met mysql

  2. primaire indexen versus secundaire indexen:prestatieverschillen

  3. mysql join-queryvolgorde in twee kolommen

  4. Mac OS X Lion - mysql:opdracht niet gevonden