source

기본 MySQL JOIN 동작은 INSER 또는 OUTER 중 무엇입니까?

factcode 2022. 9. 30. 11:03
반응형

기본 MySQL JOIN 동작은 INSER 또는 OUTER 중 무엇입니까?

그래서 저는 지난 한 시간 동안 인터넷을 통해 이 간단한 질문에 대한 결정적인 답을 찾고 읽고 있습니다.

MySQL의 기본 JOIN은 무엇입니까?

SELECT * FROM t1 JOIN t2

그거랑 똑같아요?

SELECT * FROM t1, t2

OR

SELECT * FROM t1 INNER JOIN t2

또, 「WHERE」구를 사용하는 경우는, JOIN과 INSER JOIN 중 어느 쪽과 같습니까?

현재 스탠드아론 JOIN은 콤마 및 WHERE 절을 사용하는 것과 동일하다고 생각합니다.

MySQL 쓰기JOIN무자격의 암시INNER JOIN다른 말로 하자면INNERINNER JOIN는 옵션입니다. INNER그리고.CROSS는 MySQL의 동의어입니다.알기 쉽게 쓰겠습니다.JOIN또는INNER JOIN가입조건이 있고CROSS JOIN조건이 없다면요.

join에 허용되는 구문은 매뉴얼에 설명되어 있습니다.


현재 스탠드아론 JOIN은 콤마와 WHERE 절을 사용하는 것에 불과하다고 생각합니다.


효과는 동일하지만 그 이면의 역사는 다르다.쉼표 구문은 ANSI-89 표준에 준거한 것입니다.단, 이 구문에는 많은 문제가 있기 때문에 ANSI-92 표준에서는 JOIN 키워드가 도입되었습니다.

쉼표보다는 항상 JOIN 구문을 사용하는 것이 좋습니다.

  • T1 JOIN T2 ON ...보다 읽기 쉽다T1, T2 WHERE ....
  • 테이블 관계와 필터는 서로 섞이지 않고 명확하게 정의되므로 유지보수가 용이합니다.
  • JOIN 구문은 콤마 구문보다 OUTER JOIN 구문으로 변환하기가 쉽습니다.
  • 같은 문장에서 콤마와 JOIN 구문을 혼재시키면 우선 순위 규칙으로 인해 이상한 오류가 발생할 수 있습니다.
  • join 구문을 잊어버렸기 때문에 JOIN 구문을 사용할 때 실수로 데카르트 곱이 생성될 가능성은 낮습니다.join 구문이 join 옆에 쓰여져 있어 누락된 것이 없는지 쉽게 확인할 수 있기 때문입니다.

이것들은 모두 동등하고 또한 같다.CROSS JOIN.

콤마를 사용하는 것과[INNER | CROSS] JOIN더 많은 테이블을 결합할 때 중요한 구문입니다.MySQL 설명서에 기재되어 있는 것은 거의 전부입니다.

언급URL : https://stackoverflow.com/questions/4418776/what-is-the-default-mysql-join-behaviour-inner-or-outer

반응형