sql >> Databasteknik >  >> RDS >> Oracle

Vad är skillnaden mellan ANSI- och icke-ANSI-anslutningar, och vilken rekommenderar du?

båda syntaxerna fungerar vanligtvis utan problem, men om du försöker lägga till ett where-villkor kommer du att se att det med den andra är mycket enklare att förstå vilket som är join-villkoret och vilket som är where-satsen.

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;

Dessutom är det mycket lättare att känna igen en yttre sammanfogning och glöm inte att inkludera (+). Sammantaget kan man säga att det bara är en fråga om smak, men sanningen är att den andra syntaxen är mycket mer läsbar och mindre benägen för fel.



  1. Vad är MySQL:En översikt

  2. postgresql syntax för främmande nyckel

  3. radera med var och eller

  4. Hibernate session.beginTransaction() anrop och Mysql Starta transaktion