2010-07-29 3 views
3

이러한 방법 중 하나를 수행의 단점은 할 무슨 차이가 무엇보다 효율적입니다 무슨 사람들이은 장점이나 내가 어떤 사람을 볼

SELECT * 
FROM table1 
WHERE table1.table1_id = tabl2.table2_id; 

을하는 것처럼이

SELECT * FROM table1 
JOIN table 2 
ON table1_id = table2_id 

같은 조인 및 benificial

+3

암시 적 조인은 나를 싫어합니다. 구문은 올바르지 않습니다. SELECT * FROM table1, table2 WHERE table1.col1 = table2.col2' – quantumSoup

답변

1

여기

SELECT * FROM table1 
INNER JOIN table 2 
ON table1_id = table2_id 

SELECT * FROM table1 
LEFT JOIN table 2 
ON table1_id = table2_id 

SELECT * FROM table1 
RIGHT JOIN table 2 
ON table1_id = table2_id 

SELECT * FROM table1 
FULL OUTER JOIN table 2 
ON table1_id = table2_id 
1

€은 : http://ibmsystemsmag.blogs.com/db2utor/2008/04/performance-com.html

: 이 발견

이 실습의 숫자는 IMPLICIT JOIN 구문보다 INNER JOIN을 사용하면 성능이 향상되지 않는다는 것을 보여줍니다. 이것은 DB2 V4 또는 V5의 경우 일 수 있지만, 옵티마이 저는 매우 영리 해져서 좋은 성능을 얻기 위해 명령문을 최상의 형식으로 다시 작성합니다.

2

암시 적 조인 (두 번째 예)은 많은 사람에게 나쁜 스타일로 간주되며 사용자 또는 다른 프로그래머를 오도 할 수 있습니다. 조인을 작성하는 것 (첫 번째 예)이 더 명확합니다.

SQL Optimizer가 두 가지 쿼리를 동일한 방식으로 실행할 때 효율성은 중요하지 않습니다.

-5

전혀 차이가 없습니다. 동일한 쿼리입니다. (첫 번째 쿼리는 "구식"과 같습니다. 조인 문을 기억하는 사람들은 전혀 출현하지 않았고 두 번째 쿼리는 'new-school'과 같았습니다. 참여 방법을 이미지 할 수없는 사람은 불필요한 단어 없이도 작업 할 수 있습니다. :).

+2

18 년 전에 명시 적 조인으로 바뀌었던 암시 조인 (우발적 인 교차 조인을 포함한 심각한 문제를 야기 할 수 있기 때문에)은 거의 새로운 학교가 아닙니다.암시 적 조인을 사용하는 열악한 프로그래머의 표입니다. 추가 문제는 암시 적 조인을 사용하여 조인을 쿼리에 추가해야 할 때 생성되며 유지 관리가 훨씬 어려워집니다. – HLGEM

+0

@HLGEM : "18 년 전에 대체되었습니다"- 어디서나 볼 수는 없습니다. 오라클은 버전 10 (약 7 년 전)까지 명시적인 조인 구문을 추가하지 않았습니다. 상당수의 지역에서 여전히 오래된 Oracle 데이터베이스를 사용하고 있습니다. –

+0

@Mark Thanks a lot. –

1

전 (명시 적 조인)은 전체 레코드 세트에 적용되는 조건에서 테이블을 조인하는 조건과 후자 (암시 적 조인)가 적용하지 않는 조건을 명백하게 구분합니다. 또한 mysql이 암시 적 조인 구문을 사용하여 외부 조인을 허용하는지 여부를 알지 못합니다. 일부 SQL은 그렇다고 믿습니다.

upshot : 명시 적 조인이 명확하므로 유지 관리가 쉬워야합니다. 암시 적 조인은 간략하지 않습니다.

3

이유 중 하나가 조인 암시 피할 이유는 그들과 함께 실수를하고 우발적 인 크로스 조인을 얻기 위해 매우 쉽다는 점이다. 내부 조인 대신 외부를 사용해야하는 경우에도 많은 문제가 발생할 수 있습니다. 또한 implict 조인을 사용하는 많은 사람들은 조인이 실제로 무엇을하는지 이해하는 것처럼 보이기 때문에 작동하는 것처럼 보이지만 옳지 않은 쿼리를 자주 만듭니다. SQL 코드를 작성하는 모든 사용자는 조인을 철저하게 이해해야하므로 구문을 사용하면 성공을 위해 필요한 기본 사항을 배울 수 있습니다.

교차 결합을 사용하려는 경우 코드를 유지하는 사람은 실수로 교차 결합이 가난한 사람들과 자주 발생하기 때문에 의도 한 것이거나 실수 였는지 알 수 없습니다 통사론.

암시 적 조인 구문이 거의 20 년 동안 구식이되었습니다. 왜 사용하는 것이 좋습니다.