지금까지 쿼리는 한 번에 하나의 스포츠 토토 결과에만 액세스했습니다. 쿼리는 한 번에 여러 스포츠 토토 결과에 액세스하거나 동일하게 액세스 할 수 있습니다. 스포츠 토토 결과의 여러 행이있는 방식으로 스포츠 토토 결과 동시에 처리됩니다. 여러 행에 액세스하는 쿼리 한 번에 동일하거나 다른 스포츠 토토 결과 중라고합니다.Join쿼리. 예를 들어, 목록을 원한다고 가정 해보십시오 모든 날씨 기록은 관련 도시. 그렇게하려면 도시 칼럼을 비교해야합니다. 모든 행의 이름 열이있는 날씨 스포츠 토토 결과의 각 행 도시 스포츠 토토 결과에서 값 일치.
참고 :이것은 개념적 모델 일뿐입니다. 가입은입니다 일반적으로 실제보다 더 효율적인 방식으로 수행됩니다 가능한 각 행 쌍을 비교하지만 이것은 보이지 않습니다. 사용자에게.
이것은 다음 쿼리에 의해 달성됩니다 :
선택 * 날씨, 도시 여기서 도시 = 이름;
도시 | temp_lo | temp_hi | prcp | 날짜 | 이름 | 위치 --------------+--------+---------+-------+---------------------------------------------------------------------- 샌프란시스코 | 46 | 50 | 0.25 | 1994-11-27 | 샌프란시스코 | (-194,53) 샌프란시스코 | 43 | 57 | 0 | 1994-11-29 | 샌프란시스코 | (-194,53) (2 줄)
결과 세트에 대해 두 가지를 관찰하십시오.
Hayward시에 대한 결과 행은 없습니다. 이것은
에 일치하는 항목이 없기 때문에도시
Hayward의 스포츠 토토 결과, 그래서 가입
날씨 스포츠 토토 결과의 타의 추종을 불허하는 행을 무시합니다. 우리는 볼 것입니다
곧 이것이 어떻게 고칠 수 있는지.
도시 이름을 포함하는 두 개의 열이 있습니다. 이것은
열 목록이기 때문에 수정날씨
and the도시
스포츠 토토 결과이 연결되었습니다. 실제로
그래도 이것은 바람직하지 않으므로 아마도 당신은 아마
사용하기보다는 출력 열을 명시 적으로 나열합니다*:
City, Temp_lo, Temp_hi, PRCP, 날짜, 위치를 선택하십시오 날씨, 도시 여기서 도시 = 이름;
운동 :이것의 의미론을 찾으려고 시도합니다 쿼리여기서절은입니다 생략.
열에는 모두 다른 이름, 파서가 있기 때문에 그들이 속한 스포츠 토토 결과을 자동으로 발견했습니다. 있다면 두 스포츠 토토 결과의 중복 열 이름자격열 이름을 표시하는 열 이름 :에서와 같이 의미
날씨를 선택하십시오. Weather.prcp, weather.date, 도시 날씨, 도시 여기서 도시 .name = weather.city;
모든 열 이름을받는 것은 좋은 스타일로 간주됩니다. 쿼리가 쿼리가 실패하지 않도록 조인 쿼리에서 열 이름은 나중에 스포츠 토토 결과 중 하나에 추가됩니다.
지금까지 보이는 종류의 쿼리에 가입하십시오. 이 대안 양식 :
선택 * 날씨 내부에서 도시로 가입합니다 (weather.city = cities.name);
이 구문은 위의 것만 큼 일반적으로 사용되지는 않지만 우리는 다음 주제를 이해하는 데 도움이되도록 여기에 보여주세요.
이제 우리는 방법을 알아낼 것입니다
우리는 Hayward 레코드를 다시 얻을 수 있습니다. 쿼리를 원하는 것
를 스캔하는 것입니다.날씨
스포츠 토토 결과
그리고 각 행에 일치하는 것을 찾을도시
행 (S). 일치하는 행을 찾지 못하면 우리
일부를 원해"빈 값"대체도시
스포츠 토토 결과
열. 이런 종류의 쿼리는입니다.외부 조인. (지금까지 본 조인은입니다
내부 조인.) 명령은 다음과 같습니다.
선택 * 날씨에서 왼쪽 외부의 도시에 가입 (weather.city = cities.name); 도시 | temp_lo | temp_hi | prcp | 날짜 | 이름 | 위치 --------------+--------+---------+-------+---------------------------------------------------------------------- 헤이워드 | 37 | 54 | | 1994-11-29 | | 샌프란시스코 | 46 | 50 | 0.25 | 1994-11-27 | 샌프란시스코 | (-194,53) 샌프란시스코 | 43 | 57 | 0 | 1994-11-29 | 샌프란시스코 | (-194,53) (3 줄)
이 쿼리는 a라고합니다.왼쪽 외부 가입하다가입 왼쪽에 언급 된 테이블이기 때문에 연산자는 출력에 각 행이 적어도 한 번은 있습니다. 오른쪽의 테이블에는 해당 행 출력 만 있습니다. 그것은 왼쪽 테이블의 일부 행과 일치합니다. 출력 할 때 a 오른쪽 테이블 경기가없는 왼쪽 테이블 행, 비어 (NULL) 값은 오른쪽 테이블 열에 대해 대체됩니다.
운동 :오른쪽 외부 결합 및 가득도 있습니다 외부 조인. 그 일이 무엇을하는지 알아보십시오.
우리는 또한 스포츠 토토 결과에 합류 할 수 있습니다. 이것은
a셀프 조인. 예를 들어,
우리가
기타 기상 기록의 온도 범위. 그래서 우리는 비교해야합니다
그만큼temp_loandtemp_hi각각의 열날씨
로드temp_loandtemp_hi다른 모든의 열날씨
행. 우리는 이것을 할 수 있습니다
다음 쿼리 :
w1.city, w1.temp_lo는 낮은 상태, w1.temp_hi As High, W1.city를 선택하십시오. w2.city, w2.temp_lo는 낮고, w2.temp_hi는 높다 날씨 W1, 날씨 W2에서 여기서 w1.temp_lo <w2.temp_lo 및 w1.temp_hi w2.temp_hi; 도시 | 낮음 | 높은 | 도시 | 낮음 | 높은 ---------------+-----+-------+----------------------------------- 샌프란시스코 | 43 | 57 | 샌프란시스코 | 46 | 50 헤이워드 | 37 | 54 | 샌프란시스코 | 46 | 50 (2 줄)
여기서 우리는 날씨 테이블을 칭해로 옮겼습니다.W1andW2조인의 왼쪽과 오른쪽을 구별합니다. 당신은 또한 사용할 수 있습니다 일부 타이핑을 저장하기 위해 다른 쿼리의 이러한 종류의 별칭은 예 :
선택 * 날씨 W, 도시 c 여기서 w.city = c.name;
당신은이 스타일의 약어를 꽤 겪게 될 것입니다 자주.