[SQL] 쉼표의 차이 조인 분리와 MySQL의 구문에 가입 무엇입니까? [복제]
SQL쉼표의 차이 조인 분리와 MySQL의 구문에 가입 무엇입니까? [복제]
예를 들어 내가 열 "ID"를 테이블 "사람"을 가지고 있다면 "노동자"테이블에서 참조 열 "ID"그
이 두 쿼리의 차이는 무엇을 할 것인가? 그들은 같은 결과를 얻을 수 있습니다.
SELECT *
FROM Person
JOIN Worker
ON Person.id = Worker.id;
과
SELECT *
FROM Person,
Worker
WHERE Person.id = Worker.id;
감사
해결법
-
==============================
1.전혀 차이가 없습니다.
전혀 차이가 없습니다.
두 번째 표현은 쿼리를보다 읽기하게하고있는에 매우 깨끗해 조건에 해당 참여할 수 있습니다.
-
==============================
2.쿼리는 논리적으로 동일합니다. 콤마 연산자는 [INNER]가 가입 오퍼레이터 동일하다.
쿼리는 논리적으로 동일합니다. 콤마 연산자는 [INNER]가 가입 오퍼레이터 동일하다.
쉼표는 이전 스타일 조인 연산자입니다. 나중에 추가 된 키워드를 JOIN 및 외부 작업을 조인 그것은 또한 수 있기 때문에 선호된다.
(가) 조건 (조건)를 조인 ON 절에 WHERE 절에서 분리하는 것도 허용한다. 즉, (인간)의 가독성을 향상시킨다.
후속
이 답변은 문제의 두 쿼리가 동일하다는 것을 말한다. 새가 동일한 쿼리에 키워드 구문 조인과 조인 작업을 위해 우리는 구식 쉼표 구문을 혼합해서는 안된다. 우리가 그들을 혼합 할 경우, 우리는 우선 순위의 차이를 인식 할 필요가있다.
MySQL을 참조 설명서에서 발췌
https://dev.mysql.com/doc/refman/5.6/en/join.html
-
==============================
3.가독성 옆에, 명시 적으로 조인 된 테이블이 쉼표로 구분 된 테이블 대신 더 나은 하나 더 경우가 있습니다.
가독성 옆에, 명시 적으로 조인 된 테이블이 쉼표로 구분 된 테이블 대신 더 나은 하나 더 경우가 있습니다.
하자가 예를 참조하십시오
Create Table table1 ( ID int NOT NULL Identity(1, 1) PRIMARY KEY , Name varchar(50) ) Create Table table2 ( ID int NOT NULL Identity(1, 1) PRIMARY KEY , ID_Table1 INT NOT NULL )
다음 쿼리는 나에게 두 테이블의 모든 행과 열을 줄 것이다
SELECT * FROM table1, table2
다음 쿼리는 '표 2'라는 테이블 별칭으로 나에게 첫 번째 테이블에서 열을 줄 것이다
SELECT * FROM table1 table2
실수 쉼표로 구분 가입에 쉼표를 잊어 버린 경우, 두 번째 표가 자동으로 첫 번째 테이블에 대한 테이블 별칭을 변환합니다. 모든 경우에, 그러나이 같은 뭔가 기회가있다
-
==============================
4.JOINS 사용하기 때문에, 코드를 읽기 쉽게 그것의 자기 설명.
JOINS 사용하기 때문에, 코드를 읽기 쉽게 그것의 자기 설명.
속도가 차이가 없다 (I 그것을 시험) 및 실행 플랜은 동일
쿼리 최적화 프로그램이 그것의 일 권리를하고있는 경우 해당 쿼리 사이에 차이점이 없습니다. 그들은 같은 원하는 결과를 지정하는 두 가지 방법입니다.
-
==============================
5.등 표 1, 표 2,에서 SELECT * 테이블의 몇 가지 좋은이지만 테이블의 수가 증가함에 따라 기하 급수적으로 어려워진다.
등 표 1, 표 2,에서 SELECT * 테이블의 몇 가지 좋은이지만 테이블의 수가 증가함에 따라 기하 급수적으로 어려워진다.
구문 차종 가입 그것을 어떤 기준 테이블 (조건을 제공하는) 어떤 영향을 명시. 또한, 두 번째 방법은 기존의 표준입니다.
데이터베이스에, 그들은 같은 끝나게 있지만
from https://stackoverflow.com/questions/20138355/whats-the-difference-between-comma-separated-joins-and-join-on-syntax-in-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 파일 시스템의 디렉토리 경로 계층 / 트리 데이터베이스 (0) | 2020.05.19 |
---|---|
[SQL] 왜 빠른 일괄 삽입 / 업데이트는 무엇입니까? 어떻게 배치 업데이트 작업을? (0) | 2020.05.19 |
[SQL] 어떻게 내 테이블을 잠금되고 있는지 확인하려면? (0) | 2020.05.19 |
[SQL] 나는 H2는 메모리 데이터베이스의 스키마를 자동 작성 할 수 있습니까? (0) | 2020.05.19 |
[SQL] SQL의 목적이 "있는 그대로"를 키워드 무엇입니까? (0) | 2020.05.19 |