[sql] JOIN과 INNER JOIN의 차이점

이 두 조인 모두 나에게 동일한 결과를 줄 것입니다.

SELECT * FROM table JOIN otherTable ON table.ID = otherTable.FK

vs

SELECT * FROM table INNER JOIN otherTable ON table.ID = otherTable.FK

성과 또는 그 밖의 진술 사이에 차이점이 있습니까?

서로 다른가요? SQL 구현 있습니까?



답변

그것들은 기능적으로 동일하지만 INNER JOIN특히 쿼리에 다른 조인 유형 ( LEFT또는 RIGHT또는 또는 CROSS)이 포함되어있는 경우 읽기가 더 명확 할 수 있습니다 .


답변

아니, 순수한 구문 설탕 차이가 없습니다 .


답변

내부 가입 = 가입

지정하지 않으면 INNER JOIN이 기본값입니다. 이라는 단어를 사용할 때 유형을 입니다.

LEFT OUTER JOIN 또는 RIGHT OUTER JOIN을 사용할 수도 있습니다.이 경우 OUTER라는 단어는 선택 사항이거나 CROSS JOIN을 지정할 수 있습니다.

또는

내부 조인의 구문은 다음과 같습니다.

고르다 …
TableA에서
[INNER] 조인

즉, “INNER”키워드는 선택 사항입니다 . 결과는 키워드의 유무에 관계없이 동일합니다.


답변

다른 SQL 구현간에 차이가 있습니까?

예, Microsoft Access 에서는을 (를) 허용하지 않습니다 join. 필요합니다 inner join.


답변

와 마찬가지로 OUTER JOINs단어 "OUTER"는 선택 사항입니다. 그것은의 LEFT또는 RIGHT차종 키워드 JOIN"OUTER" JOIN.

그러나 어떤 이유로 나는 항상 사용 "OUTER"과 같이 LEFT OUTER JOIN결코 LEFT JOIN,하지만 난 절대 사용하지 INNER JOIN않고, 난 그냥 사용합니다 "JOIN":

SELECT ColA, ColB, ...
FROM MyTable AS T1
     JOIN MyOtherTable AS T2
         ON T2.ID = T1.ID
     LEFT OUTER JOIN MyOptionalTable AS T3
         ON T3.ID = T1.ID


답변

다른 답변에서 이미 언급했듯이 귀하의 예에는 차이가 없습니다.

관련 문법이 여기문서화되어 있습니다.

<join_type> ::=
    [ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
    JOIN

모두 선택 사항임을 보여줍니다. 이 페이지는 또한

INNER일치하는 모든 행 쌍이 리턴되도록 지정합니다. 두 테이블에서 일치하지 않는 행을 버립니다.조인 유형을 지정하지 않으면 이것이 기본값 입니다.

문법은 또한 INNER 되어 있지만이 필요합니다. 조인 힌트를 지정할 때.

아래 예를 참조하십시오

CREATE TABLE T1(X INT);
CREATE TABLE T2(Y INT);

SELECT *
FROM   T1
       LOOP JOIN T2
         ON X = Y;

SELECT *
FROM   T1
       INNER LOOP JOIN T2
         ON X = Y;

여기에 이미지 설명을 입력하십시오


답변