그들이 일을 어떻게의 당신의 마음에 더 명확한 구분을 그리기의 목표로, 조인에 대해 조금 이야기하고 싶습니다 :
INNER JOIN은 "모든 행 조합"을 초래하지 않습니다 - 교차 결합이하는 것입니다.
OUTER JOIN은 모든 값 (솔리드 테이블)을 가진 하나의 테이블을 가지고 있고 다른 테이블에 참여해야 할 때 유용합니다 반드시 단색 테이블과 관련된 행을 포함하지 않는 테이블 - 데이터 테이블에있는 희소한 테이블입니다. 외부 조인은 왼쪽, 오른쪽 및 전체의 3 가지 맛이 있습니다. 왼쪽과 오른쪽은 같은 것으로, 테이블의 순서에 따라 적절한 키워드를 선택하면됩니다. 본질적으로 a left join b
과 b right join a
은 같은 것으로 간주됩니다. 왼쪽/오른쪽 키워드는 단단한 것으로 간주되는 테이블과 스파 스로 간주되는 테이블을 선언합니다.
솔리드 테이블과 스파 스 테이블 쌍의 내부 조인은 결과에서 일부 단색 행을 제거하여 스파 스 행 및 관련 단색 행만 남겨 둡니다. 외부 조인은 모든 단색 행을 나타내며 일치하는 희소 행이없는 빈 셀을 나타냅니다.
자연 조인은 테이블이 어떻게 관련되는지 명시 적으로 나타내지 않는 JOIN이므로 데이터베이스를 동일한 열 두 테이블의 이름. 자연스러운 JOIN을 사용하지 마십시오. 거의 항상 어리석은 아이디어와 좌절스러운 디버깅을 위해 몇 초의 키 스트로크를 저장하는 무의미한 "최적화"
여기에서 쿼리는 외부 JOIN을 필요로하지 않습니다. 당신은 당신이 ... 그건 어느 회사가 제공하는 조각을 알고 싶어 명시 단지
SELECT c.* FROM
Provider r
JOIN Provides s ON r.code = s.provider
JOIN Pieces c ON c.code = s.piece
WHERE
R.Name = 'Mattel'
편집 : Philipxy는, 키워드는 "고체"와 "스파 스"수학에 특별한 의미를 가지고 합리적인 지점을했다 및 나는 수학의 특정 양상을 끌어 들이기보다는 개념을 전달하기 위해 여기에 그것들을 사용하고 있음을 지적하고자한다.당신이 이해를 찾고있을 때, 저는 제가 고전적인 방법으로 학습자가 개념을 이해할 수있는 방법을 찾았 기 때문에 이런 방식으로 사물을 토론 할 것이라고 생각했습니다. 그러나 이것은 본질적으로 데이터베이스의 형태를 언급하는 자신의 용어입니다 당신이 작업하고있는 데이터와 나는 반드시 수학의 이해에 많은 투자를하고있는 미래의 동료 전문가가 자신이 사용하는/사용하는 키워드를 사용한다면 말하고있는 것의 의미를 파악할 수 있다고 보장하지 않습니다. 특별한 방식으로 이해합니다. 이 경우 "고체"와 "희소"를 사용하는 경우 유사한 감각 표현을 추가해야 할 수도 있습니다. 수학적 의미가 아니라 일반적으로 허용되는 영어 언어 의미를 의미합니다.
보유하고있는 것을 보여줄 수 있습니까? 너무 운이 좋았 니? – MaxZoom
기존 검색어를 볼 수 있습니까? 당신은 3 행을 기대한다고 말하지만, 왜 특별히 그 행이 있습니까? 솔직히 말하면, 공급자가없는 부분이나 실제로 아무 것도 제공하지 않는 공급자를 포함시키지 않는 한 내부 조인 상황처럼 보입니다. –
안녕하세요. 'inner join'은'on'으로 주어진 조건으로 제한된'cross join' 행 (모든 조합)입니다. 'inner'가없는'join'은'inner join'입니다. 'where'는 모든 join 뒤에 나오는 on과 같습니다. MySQL은''in''없이''join''을 허용합니다. 이것은''cross join''을 의미합니다. 게다가 구현/실행을위한 처방이 아닌 결과 *에 대한 설명입니다. 이것이 우리가 쿼리를 작성하는 방법입니다. "나는 모든 조합을 원하지 않는다"는 것을 오해하고 있습니다. 추신 : "시도했다"& "나는 기대했다"는 말은하지 않았다. "결과가 없다"는 말은 "행이없는 결과"를 의미합니다. 명확하게. 무슨 일이 있었는지 보여줘. (예제와 마찬가지로) [mcve] – philipxy