Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wyrocznia i lewe połączenie zewnętrzne

Ci użytkownicy wracają, ale wracają jako null dla wszystkich kolumn zwróconych w tabelach, w których lewe połączenie nie znalazło prawidłowego połączenia.

Ze względu na to, jak działają wartości null ANSIb4_.ACTIVE=1, będą one nieważne dla tych rekordów, ponieważ wartość null <> 1

Spróbuj zrestrukturyzować swój blok Where w następujący sposób:

AND (b4_.ACTIVE=1 or b4_.ACTIVE is null) 
    AND (B4_.STATUS='A' or B4_.STATUS is null) 
    AND (UB2_.VISIBLE=1 or UB2_.VISIBLE is null)
    and (bl3_.ACTIVE=1 or bl3_.ACTIVE is null)

Innym sposobem rozwiązania tego problemu jest dodanie wymagań wstępnych do lewych sprzężeń. Możesz zrobić tak, jak zrobiłem poniżej, i wykluczy to odznaki, w których AKTYWNE <> 1 wyklucza złe odznaki i nadal zwraca wszystkich użytkowników.

 left outer join
        REWARD.BADGES b4_ 
            on bl3_.BADGEID=b4_.ID 
                AND b4_.ACTIVE=1



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rozszerzenie Centos 6 PHP OCI8 nie działa (niezdefiniowana funkcja oci_connect())

  2. Błąd :ORA-00907:brak prawego nawiasu

  3. Konwersja wartości całkowitej z kolumny db na tekst w Oracle

  4. Kolekcje Oracle PL/SQL — tworzenie zagnieżdżonej tabeli w bazie danych

  5. Wywołanie ODP.NET w bibliotece korporacyjnej zwraca ORA-06502:PL/SQL:błąd wartości liczbowej lub wartości