sql >> Databáze >  >> RDS >> Oracle

Jaký je rozdíl mezi připojeními ANSI a non-ANSI a které doporučujete?

obě syntaxe obvykle fungují bez problémů, ale pokud se pokusíte přidat podmínku where, uvidíte, že s druhou je mnohem jednodušší pochopit, která je podmínka spojení a která klauzule 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;

Také je mnohem snazší rozpoznat vnější spojení a nezapomeňte zahrnout (+). Celkově lze říci, že je to jen otázka vkusu, ale pravdou je, že druhá syntaxe je mnohem čitelnější a méně náchylná k chybám.



  1. Chyba mysql node.js:ECONNREFUSED

  2. Doručování vánočních dárků:Santov datový model

  3. Chyba MySQL Příliš mnoho připojení

  4. Aktualizace více sloupců tabulky MySQL pomocí polí s PDO