이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.57토토 꽁 머니14버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

2.6. 스포츠 토토 사이트 간 조인

지금까지 우리 쿼리는 한 번에 하나의 스포츠 토토 사이트에만 액세스했습니다. 쿼리는 한 번에 여러 스포츠 토토 사이트에 액세스하거나 동일한 스포츠 토토 사이트에 액세스할 수 있습니다. 스포츠 토토 사이트의 여러 행이 표시되는 방식으로 스포츠 토토 사이트 동시에 처리됩니다. 여러 행에 액세스하는 쿼리 동시에 동일하거나 다른 스포츠 토토 사이트을 a라고 합니다.가입질의. 예를 들어, 모든 항목을 나열하고 싶다고 가정해 보겠습니다. 날씨 기록과 관련 위치 도시. 그러기 위해서는 다음을 비교해야 합니다.도시각 행의 열날씨스포츠 토토 사이트이 있는이름모든 행의 열도시스포츠 토토 사이트을 선택하고 행 쌍을 선택합니다. 이 값은 일치합니다.

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

이것은 다음 쿼리로 수행됩니다:

선택 *
    날씨, 도시에서
    어디에서 도시 = 이름;
도시 | 임시_로 | 임시_안녕 | PRCP |    날짜 |     이름 | 위치
---------------+---------+---------+------+------------+---------------+------------
 샌프란시스코 |      46 |      50 | 0.25 | 1994-11-27 | 샌프란시스코 | (-194,53)
 샌프란시스코 |      43 |      57 |    0 | 1994-11-29 | 샌프란시스코 | (-194,53)
(2행)

결과 세트에 대해 두 가지를 관찰하십시오:

  • 헤이워드시에 대한 결과 행이 없습니다. 이는 에 일치하는 항목이 없습니다.도시테이블이 Hayward에 대한 것이므로 조인은 다음을 무시합니다. 의 일치하지 않는 행날씨스포츠 토토 사이트. 우리 이 문제를 어떻게 해결할 수 있는지 곧 알게 될 것입니다.

  • 도시 이름을 포함하는 두 개의 열이 있습니다. 이것이 맞습니다 왜냐하면의 열 목록이날씨그리고도시스포츠 토토 사이트이 연결되어 있습니다. 실제로 이는 바람직하지 않지만, 따라서 출력 열을 명시적으로 나열하고 싶을 것입니다. 사용하는 것보다*:

    도시 선택, temp_lo, temp_hi, prcp, 날짜, 위치
        날씨, 도시에서
        어디에서 도시 = 이름;

운동:이것의 의미를 결정하려고 시도합니다. 쿼리 언제?어디에서절은 생략했습니다.

열의 이름이 모두 다르기 때문에 파서는 자동으로 자신이 속한 테이블을 찾습니다. 만약 있었다면 두 테이블에 열 이름이 중복되어야 합니다.자격을 갖추다어떤 열을 표시할 열 이름 다음과 같이 의미합니다:

SELECT Weather.city, Weather.temp_lo, Weather.temp_hi,
       날씨.prcp, 날씨.날짜, 도시.위치
    날씨, 도시에서
    어디에서 city.name = Weather.city;

모든 열 이름을 한정하는 것이 좋은 스타일로 널리 간주됩니다. 조인 쿼리에서 중복 열이 있어도 쿼리가 실패하지 않도록 이름은 나중에 테이블 중 하나에 추가됩니다.

지금까지 본 종류의 조인 쿼리는 다음 언어로도 작성할 수 있습니다. 이 대체 형식은 다음과 같습니다.

선택 *
    FROM 날씨 INNER JOIN 도시 ON(weather.city = 도시.이름);

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

이제 우리는 헤이워드 기록을 되돌릴 수 있는 방법을 알아 보겠습니다. in. 우리가 쿼리에서 수행하려는 작업은날씨스포츠 토토 사이트과 각 행에 대해 매칭도시행. 일치하지 않는 경우 행을 찾았습니다. 우리는 뭔가를 원합니다."빈 값"대신도시스포츠 토토 사이트의 열. 이러한 종류의 쿼리를외부 조인. (지금까지 본 조인은 다음과 같습니다. 내부 조인.) 명령은 다음과 같습니다.

선택 *
    FROM Weather LEFT OUTER JOIN 도시 ON (weather.city = 도시.이름);

     도시 | 임시_로 | 임시_안녕 | 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_lo그리고temp_hi각각의 열날씨행에서temp_lo그리고temp_hi기타 모든 열날씨행. 우리는 다음을 사용하여 이를 수행할 수 있습니다. 쿼리:

W1.city, W1.temp_lo AS 낮음, W1.temp_hi AS 높음,
    W2.city, W2.temp_lo AS 낮음, W2.temp_hi AS 높음
    FROM 날씨 W1, 날씨 W2
    W1.temp_lo < W2.temp_lo
    AND W1.temp_hi  W2.temp_hi;

     도시 | 낮음 | 높다 |     도시 | 낮음 | 높다
---------------+------+------+---------------+------+------
 샌프란시스코 |  43 |   57 | 샌프란시스코 |  46 |   50
 헤이워드 |  37 |   54 | 샌프란시스코 |  46 |   50
(2행)

여기서 기상표의 라벨을 다음과 같이 변경했습니다.W1그리고W2할 수 있다 조인의 왼쪽과 오른쪽을 구별합니다. 당신은 또한 사용할 수 있습니다 일부 입력을 절약하기 위해 다른 쿼리에 이러한 종류의 별칭을 사용합니다. 예:

선택 *
    FROM 날씨 w, 도시 c
    WHERE w.city = c.name;

당신은 이런 축약어 스타일을 접하게 될 것입니다. 자주.