sql >> Database teknologi >  >> RDS >> Mysql

Left Outer Join returnerer ikke alle poster fra den primære tabel

Din where-klausul konverterer den ydre join tilbage til en indre.

De ikke-matchende rækker bevaret af den outer join vil alle have NULL værdier for documentation.status så din documentation.status != 3 betingelse vil filtrere disse tilbage (Resultatet af udtrykket NULL !=3 er unknown ikke true ).

Brug

for at undgå dette problem
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'  

Bemærk, at documentation.status != 3 prædikat flyttes ind i JOIN tilstand.



  1. Bestilling af MySQL-resultater efter IN-sekvens?

  2. Mysql Regex til at erstatte 0 fra ipv4

  3. Geolocation og Haversine formel

  4. Sådan indsætter du tags i databasen ved hjælp af jquery html og php