복붙노트

[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. ==============================

    1.전혀 차이가 없습니다.

    전혀 차이가 없습니다.

    두 번째 표현은 쿼리를보다 읽기하게하고있는에 매우 깨끗해 조건에 ​​해당 참여할 수 있습니다.

  2. ==============================

    2.쿼리는 논리적으로 동일합니다. 콤마 연산자는 [INNER]가 가입 오퍼레이터 동일하다.

    쿼리는 논리적으로 동일합니다. 콤마 연산자는 [INNER]가 가입 오퍼레이터 동일하다.

    쉼표는 이전 스타일 조인 연산자입니다. 나중에 추가 된 키워드를 JOIN 및 외부 작업을 조인 그것은 또한 수 있기 때문에 선호된다.

    (가) 조건 (조건)를 조인 ON 절에 WHERE 절에서 분리하는 것도 허용한다. 즉, (인간)의 가독성을 향상시킨다.

    후속

    이 답변은 문제의 두 쿼리가 동일하다는 것을 말한다. 새가 동일한 쿼리에 키워드 구문 조인과 조인 작업을 위해 우리는 구식 쉼표 구문을 혼합해서는 안된다. 우리가 그들을 혼합 할 경우, 우리는 우선 순위의 차이를 인식 할 필요가있다.

    MySQL을 참조 설명서에서 발췌

    https://dev.mysql.com/doc/refman/5.6/en/join.html

  3. ==============================

    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. ==============================

    4.JOINS 사용하기 때문에, 코드를 읽기 쉽게 그것의 자기 설명.

    JOINS 사용하기 때문에, 코드를 읽기 쉽게 그것의 자기 설명.

    속도가 차이가 없다 (I 그것을 시험) 및 실행 플랜은 동일

    쿼리 최적화 프로그램이 그것의 일 권리를하고있는 경우 해당 쿼리 사이에 차이점이 없습니다. 그들은 같은 원하는 결과를 지정하는 두 가지 방법입니다.

  5. ==============================

    5.등 표 1, 표 2,에서 SELECT * 테이블의 몇 가지 좋은이지만 테이블의 수가 증가함에 따라 기하 급수적으로 어려워진다.

    등 표 1, 표 2,에서 SELECT * 테이블의 몇 가지 좋은이지만 테이블의 수가 증가함에 따라 기하 급수적으로 어려워진다.

    구문 차종 가입 그것을 어떤 기준 테이블 (조건을 제공하는) 어떤 영향을 명시. 또한, 두 번째 방법은 기존의 표준입니다.

    데이터베이스에, 그들은 같은 끝나게 있지만

  6. 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