2011-09-26 2 views
3

가능한 중복 :
which query is better and efficient - mysql있는 경우의 차이는이 두 가지 (MySQL의) 사이에, 무엇이러한 MySQL SELECT 쿼리는 다른 내부 조인을 나타 냅니까?

쿼리를 선택?

SELECT name, salary 
FROM employee, info 
WHERE employee.id = info.id; 

SELECT e.name AS name, i.salary AS salary 
FROM employee AS e 
INNER JOIN info AS i 
ON e.id = i.id; 

는 (같은?)를 나타냅니다 내부는 테이블 employeeinfo에 가입 할 수 있습니다.

+2

당신은이 주제에 대한 많은 토론을 찾을 수 있습니다 http://stackoverflow.com/questions/3138742/which-query-is-better-and-efficient-mysql/3138863 –

+0

큰! 감사합니다 – waanders

+0

예 중복, 나는 또한 이것을 발견 : http://stackoverflow.com/questions/1018822/inner-join-versus-where-clause-any-difference. 죄송합니다 – waanders

답변

1

예 모두는 INNER JOIN을 나타냅니다.

SELECT e.name AS name, i.salary AS salary 
FROM employee AS e 
INNER JOIN info AS i 
ON e.id = i.id; 

"explicit join notation" 가입 할 수있는 테이블을 지정하기 위해 가입 키워드를 사용, 그리고 ON 키워드는 참여에 대한 조건을 지정할 수 있습니다.

SELECT name, salary 
FROM employee, info 
WHERE employee.id = info.id; 

"implicit join notation"은 단순히 시청에 테이블을 나열 (에 SELECT 문의 FROM 절) 구분 쉼표를 사용하여. 따라서 cross join을 지정하고 WHERE 절은 추가 필터 술어 (명시 적 표기법의 조인 술어와 유사하게 기능 함)를 적용 할 수 있습니다. 이 예제 밖으로

확인 : http://en.wikipedia.org/wiki/Join_%28SQL%29#Inner_join

+1

그냥 메모 : MySQL에서'크로스 조인'과'내부 조인 '동의어입니다. – Karolis

관련 문제