2012-05-09 2 views
5

나는 데이터베이스 시험 내가 SQL을 본 적이 방법을 SQL을 공부하는 것은 그들이 식으로이 페이지에서 보이는 것입니다 :조인 .. 대신 SQL 자연 조인을 사용하는 경우?

http://en.wikipedia.org/wiki/Star_schema IE joinJoin <table name> On <table attribute>을 작성하고 선택을위한 조건을 가입 할 수 있습니다. 그러나 내 교과서와 학술 기관에서받은 나의 연습 문제는 자연스러운 결합만을 사용합니다. 언제 자연 결합을 사용하는 것이 옳은가? JOIN .. ON을 사용하여 쿼리를 작성할 수도있는 경우 자연 조인을 사용해야합니까?

모든 답변에 대한 감사 또는

+4

SQL에 아주 좋은 시각적으로 대표 기사를 가입 가입 결합합니다. com/blog/2007/10/a-visual-explanation-of-sql-joins.html – Sanath

+1

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

+1

[자연 조인] (http://en.wikipedia.org/wiki/Join_ (SQL) #Natural_join)은 동등 조인의 한 유형으로, 조건이 같음 ('=') 비교 만 사용함을 의미합니다. '... JOIN tblA a ON a.amount> b.amount'와 같은 것이 있으면 자연 결합으로 표현할 수 없습니다. – Wiseguy

답변

9

자연 조인은 두 테이블 모두에서 같은 이름의 열을 찾아서 발견 된 각 쌍의 결과에 하나의 열을 추가합니다. 내부 조인을 사용하면 모든 열을 사용하여 비교할 항목을 지정할 수 있습니다.

+1

이것은 객관적이고 이론적이며 SQL이 아니기 때문에 가장 좋은 대답입니다. –

5

이 IMO, 구문에 가입 언급은 훨씬 더 읽기 쉽고 유지 보수가 자연 조인 구문보다. 자연 결합은 일부 오래된 표준의 남은 부분이며 전염병처럼 피해야합니다.

+1

오늘 배웠습니다 :) – keyser

+2

자연 결합에는 가독성 외에도 많은 문제가 있습니다. 예 : 테이블 중 하나를 변경하면 쿼리가 중단 될 수 있습니다. – svallory

+0

동의합니다. 대답 해줘서 고마워. –

1

자연 조인은 두 테이블에서 같은 이름의 열을 찾아서 발견 된 각 쌍에 대해 결과에 하나의 열을 추가합니다. 내부 조인을 사용하면 모든 열을 사용하여 비교할 항목을 지정할 수 있습니다.

JOIN 키워드는 SQL 문에서이 테이블의 특정 열 사이의 관계를 기반으로 두 개 이상의 테이블에서 데이터를 쿼리하는 데 사용됩니다. //www.codinghorror : 다른

* 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가 http://www.w3schools.com/sql/sql_join_inner.asp

FULL 당신에게 HTTP 도움이 될 조인 http://www.w3schools.com/sql/sql_join_full.asp

+0

해답을 가져 주셔서 감사합니다. +1 –

+1

이 답변은 묻는 질문을 전혀 다루지 않습니다. – Brad

관련 문제