sql >> Databasteknik >  >> RDS >> Mysql

Left Outer Join returnerar inte alla poster från den primära tabellen

Din where-sats konverterar den yttre sammanfogningen tillbaka till en inre.

De icke-matchande raderna som bevaras av outer join kommer alla att ha NULL värden för documentation.status så din documentation.status != 3 condition kommer att filtrera bort dessa (Resultatet av uttrycket NULL !=3 är unknown inte true ).

För att undvika detta problem använd

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'  

Observera att documentation.status != 3 predikatet flyttas till JOIN skick.



  1. mysql:hur man trunkerar längden på ett fält

  2. Sådd en MySQL DB för en dockeriserad Django-app

  3. Hur man hittar den sista dagen i månaden för ett givet datum i MySQL

  4. Intermittent JDBC trasigt rör och länkfel