2013-01-23 22 views
6

Co jest lepsze między dołączenie do tabeli lub wybierając z wielu tabel?Łączenie tabel lub wybór z wielu tabel

Na przykład, pozwala zakładać następujące podobny scenariusz:

Korzystanie dołączyć:

SELECT COALESCE(SUM(SALARY),0) FROM X 
JOIN Y ON X.X_ID=Y.Y_X_ID 

LUB

Przez Wybieranie z wielu tabel

SELECT COALESCE(SUM(SALARY),0) FROM X, Y 
WHERE X.X_ID=Y.Y_X_ID 
+7

To to samo. Zobacz plany wykonania. Drugi to również join (to połączenie Oracle syle). Powinieneś jednak użyć pierwszego stylu, który jest bardziej wyraźny i używany na całym świecie. –

+4

Mówiąc o ANSI i kompatybilności, spróbuj wydostać się z przyzwyczajenia używania Nvl(). Coalesce() jest standardową funkcją i jest bardziej elastyczny, a niektóre przypadki działają lepiej niż Nvl() z powodu oceny zwarć. –

+0

Dziękuję wam za sugestie. – hsuk

Odpowiedz

1

należy użyć DOŁĄCZ składni dla wielu powodów, które można znaleźć here.

Co więcej, ta składnia ma tę zaletę, że daje pewne wskazówki optymalizatorowi zapytań (podczas obliczania wag wagi obliczane bezpośrednio na podstawie faktów wymienionych w tej składni są ważniejsze niż pozostałe).

1

Obie są złączami. Pierwszym jest jawne dołączanie, a drugie jest niejawnym złączeniem i jest antypodejtem SQL.

Drugi jest zły, ponieważ łatwo uzyskać przypadkowe połączenie krzyżowe. Jest to również złe, gdy chcesz połączyć krzyż, nie jest jasne, czy tego chcesz, czy też masz przypadek.

W drugim stylu, jeśli chcesz konwertować na sprzężenie zewnętrzne, musisz zmienić wszystkie sprzężenia w zapytaniu lub ryzykować uzyskanie nieprawidłowych wyników. Drugi styl jest trudniejszy do utrzymania.

Zaangażowanie Explcit zostało ustanowione w ubiegłym stuleciu, dlaczego ktoś nadal używa błędów podatnych i trudnych do utrzymania niejawnych połączeń jest poza mną.

2

głównie przyłączenia jest używany do pobierania danych z wielu tablicach tak SQL są 3 typy połączyć dostępne

  1. Jednakowa przyłączenia-wewnętrzną przyłączenia sprzężenia zewnętrznego lewej właściwej pełnej
  2. Bez equi dołączyć
  3. Własna dołączyć
  4. Krzyż dołączyć