2012-05-09 10 views
5

uczę SQL dla baz danych i egzaminu drodze widziałem SQL jest to sposób, w jaki patrzy na tej stronie:Kiedy używać SQL naturalnego łączenia zamiast łączenia .. na?

http://en.wikipedia.org/wiki/Star_schema IE join napisany drogę Join <table name> On <table attribute> a następnie dołączyć warunek selekcji. Mój podręcznik do nauki i moje ćwiczenia, które otrzymałem od instytucji akademickiej, wykorzystują jednak tylko naturalne połączenie w swoich przykładach. Więc kiedy jest właściwe używanie naturalnego połączenia? Czy należy zastosować sprzężenie naturalne, jeśli zapytanie może być również napisane przy użyciu JOIN ... ON?

Dzięki za odpowiedź lub komentarz

+4

bardzo dobry artykuł na SQL wizualnie Przedstawiciel sprzężeń może pomóc http: //www.codinghorror. com/blog/2007/10/a-visual-explanation-of-sql-joins.html – Sanath

+1

http://pl.wikipedia.org/wiki/Join_%28SQL % 29 – Sanath

+1

A [połączenie naturalne] (http://en.wikipedia.org/wiki/Join_ (SQL) #Natural_join) to typ equi-join, co oznacza, że ​​warunki używają tylko porównań równości ('='). Gdybyś miał coś takiego jak "... DOŁĄCZ do tblA a ON.amount> b.amount", to nie może być wyrażone jako naturalne sprzężenie. – Wiseguy

Odpowiedz

9

Naturalne łączenie spowoduje znalezienie kolumn o tej samej nazwie w obu tabelach i dodanie jednej kolumny do wyniku dla każdej znalezionej pary. Łączenie wewnętrzne pozwala określić porównanie, które chcesz wykonać przy użyciu dowolnej kolumny.

+1

To jest najlepsza odpowiedź, ponieważ jest obiektywna, teoretyczna, a nie tylko SQL. –

5

IMO, JOIN składni jest znacznie bardziej czytelne i utrzymaniu niż naturalna składnia przyłączyć. Naturalne łączenia to pozostałość po starych standardach i staram się tego uniknąć, jak zaraza.

+1

Nauczyłem się czegoś dzisiaj :) – keyser

+2

Naturalne sprzężenia mają wiele problemów oprócz czytelności. Na przykład. jeśli zmienisz jedną z tabel, możesz przerwać zapytanie. – svallory

+0

Zgadzam się. Dzięki za odpowiedź. –

1

Naturalne połączenie spowoduje znalezienie kolumn o tej samej nazwie w obu tabelach i dodanie jednej kolumny do wyniku dla każdej znalezionej pary. Łączenie wewnętrzne pozwala określić porównanie, które chcesz wykonać przy użyciu dowolnej kolumny.

Słowo kluczowe JOIN jest używane w instrukcji SQL do zapytania danych z dwóch lub więcej tabel, w oparciu o relacje między określonymi kolumnami w tych tabelach.

Different Łączy

* JOIN: Return rows when there is at least one match in both tables 
* LEFT JOIN: Return all rows from the left table, even if there are no matches in the right table 
* RIGHT JOIN: Return all rows from the right table, even if there are no matches in the left table 
* FULL JOIN: Return rows when there is a match in one of the tables 

INNER JOIN http://www.w3schools.com/sql/sql_join_inner.asp

pełnego złączenia http://www.w3schools.com/sql/sql_join_full.asp

+0

Dziękuję za odpowiedź. +1 –

+1

Ta odpowiedź nie dotyczy w ogóle zadawanego pytania. – Brad

Powiązane problemy