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

Jaka jest różnica między złączeniami ANSI i non-ANSI i które polecacie?

obie składnie zwykle działają bez problemów, ale jeśli spróbujesz dodać warunek where, zobaczysz, że druga z nich jest znacznie prostsza do zrozumienia, który jest warunkiem złączenia, a który klauzulą ​​where.

1)

  SELECT a.name,
         a.empno,
         b.loc 
    FROM tab a,
         tab b 
   WHERE a.deptno = b.deptno(+)
     AND a.empno = 190;

2)

         SELECT a.name,
                a.empno,
                b.loc 
           FROM tab a,
LEFT OUTER JOIN tab b 
             ON a.deptno = b.deptno
          WHERE a.empno = 190;

Ponadto znacznie łatwiej jest rozpoznać sprzężenie zewnętrzne i nie zapomnij uwzględnić znaku (+). Ogólnie można powiedzieć, że to tylko kwestia gustu, ale prawda jest taka, że ​​druga składnia jest znacznie bardziej czytelna i mniej podatna na błędy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odejmowanie dat w Oracle — liczba czy typ danych przedziału?

  2. Jak wydrukować od 1 do 10 bez użycia pętli w PL/SQL?

  3. Jak wprowadzić powiązania dla parametru wielowartościowego w SQL Developer

  4. REGEXP_COUNT() Funkcja w Oracle

  5. Jak załadować płaski plik z dynamicznymi kolumnami o różnym typie danych do bazy danych Oracle?