이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다57토토 꽁 머니14버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

2.6. 스포츠 토토 사이트 사이의 결합

지금까지 쿼리는 한 번에 하나의 스포츠 토토 사이트에만 액세스했습니다. 쿼리는 한 번에 여러 스포츠 토토 사이트에 액세스하거나 동일하게 액세스 할 수 있습니다. 스포츠 토토 사이트의 여러 행이있는 방식으로 스포츠 토토 사이트 동시에 처리됩니다. 여러 행에 액세스하는 쿼리 한 번에 동일하거나 다른 스포츠 토토 사이트을 A라고합니다.Join쿼리. 예를 들어, 모든 것을 나열하고 싶다고 가정 해보십시오 날씨는 관련 위치와 함께 기록 도시. 그렇게하려면를 비교해야합니다.City각 행의 열날씨스포츠 토토 사이트이름도시스포츠 토토 사이트을하고 어디에있는 행 쌍을 선택하십시오 이 값은 일치합니다.

참고 :이것은 개념적 모델 일뿐입니다. 가입은입니다 일반적으로 실제보다 더 효율적인 방식으로 수행됩니다 가능한 각 행 쌍을 비교하지만 이것은 사용자.

이것은 다음 쿼리에 의해 달성됩니다 :

선택 *
    날씨, 도시
    여기서 도시 = 이름;
도시 | 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도시스포츠 토토 사이트이 연결되었습니다. 실제로 이것은 바람직하지 않습니다. 그래서 당신은 아마 출력 열을 명시 적으로 나열하고 싶을 것입니다. 사용하기보다는*:

    City, Temp_lo, Temp_hi, PRCP, 날짜, 위치를 선택하십시오
        날씨, 도시
        여기서 도시 = 이름;

운동 :이것의 의미를 결정하려고 시도합니다 쿼리여기서절은입니다 생략.

열에는 모두 다른 이름, 파서가 있기 때문에 그들이 속한 스포츠 토토 사이트을 자동으로 발견했습니다. 있다면 두 스포츠 토토 사이트의 중복 열 이름자격열 이름을 표시하는 열 이름 :에서와 같이 의미

날씨를 선택하십시오.
       Weather.prcp, weather.date, 도시
    날씨, 도시
    여기서 도시 .name = weather.city;

모든 열 이름을받는 것은 좋은 스타일로 간주됩니다. 중복 열이면 쿼리가 실패하지 않도록 조인 쿼리에서 이름은 나중에 스포츠 토토 사이트 중 하나에 추가됩니다.

지금까지 보이는 종류의 쿼리 가입도 이 대안 양식 :

선택 *
    날씨 내부에서 도시로 가입합니다 (weather.city = cities.name);

이 구문은 위의 것만 큼 일반적으로 사용되지는 않지만 우리는 다음 주제를 이해하는 데 도움이되도록 여기에 보여주세요.

이제 우리는 헤이워드 레코드를 어떻게 되 찾을 수 있는지 알아낼 것입니다. in. 우리가 쿼리를하고 싶은 것은를 스캔하는 것입니다.날씨스포츠 토토 사이트과 각 행마다 어울리는도시행 (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라고합니다.왼쪽 외부 조인가입 연산자의 왼쪽에 언급 된 스포츠 토토 사이트이 출력에 각 행을 적어도 한 번은하지만 오른쪽의 스포츠 토토 사이트은 일부 일치하는 행 출력 만 있습니다. 왼쪽 스포츠 토토 사이트의 행. 왼쪽 스포츠 토토 사이트 행을 출력 할 때 오른쪽 스포츠 토토 사이트 일치가없고 빈 (NULL) 값이 대체됩니다. 오른쪽 스포츠 토토 사이트 열의 경우

운동 :오른쪽 외부 결합 및 전체 외부도 있습니다 가입. 그 일이 무엇을하는지 알아보십시오.

우리는 또한 스포츠 토토 사이트에 합류 할 수 있습니다. 이것을 A라고합니다.셀프 조인. 예를 들어, 우리가 원한다고 가정 해 봅시다 온도 범위에있는 모든 날씨 기록을 찾으려면 다른 날씨 기록의. 그래서 우리는를 비교해야합니다.temp_loandtemp_hi각각의 열날씨행으로 행temp_loandtemp_hi기타 모든 열날씨행. 우리는 다음과 같이 할 수 있습니다 질문:

w1.city, w1.temp_lo로 낮은 w1.temp_lo, w1.temp_hi를 선택하여 높음,
    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;

당신은이 스타일의 약어를 꽤 겪게 될 것입니다 자주.