Mysql
 sql >> база данни >  >> RDS >> Mysql

Left Outer Join не връща всички записи от основната таблица

Вашата клауза where преобразува външното съединение обратно във вътрешно.

Несъвпадащите редове, запазени от outer join всички ще имат NULL стойности за documentation.status така че вашият documentation.status != 3 условие ще ги филтрира обратно (Резултатът от израза NULL !=3 е unknown не е true ).

За да избегнете този проблем, използвайте

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'  

Обърнете внимание, че documentation.status != 3 предикатът се премества в JOIN състояние.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да разделите записите на MySQL таблицата наполовина, за да се показват от всяка страна на страницата

  2. Мигриране на Google Cloud SQL за MySQL към On-Prem сървър

  3. Как да получите свободни дати с резервации?

  4. Създайте физически архиви на вашите MariaDB или MySQL бази данни

  5. Защо да използвам DB::raw вътре в DB::select в Laravel?