>  Q&A  >  본문

NULL이 될 수 있는 다른 열의 키를 사용하여 테이블 자체를 조인하는 방법

다음과 같은 데이터 세트(예제 5개 필드)가 있습니다.

시작일 시간 1번 2번 핵심 1 핵심 2
2022년 11월 21일 0:01 1668969012 413027032418217 B3B820CE
2022년 11월 21일 0:02 B3B820CE
2022년 11월 21일 0:03 1668969013 413027032418218 8EFCB769
2022년 11월 21일 0:04 8EFCB769
2022년 11월 21일 0:05 1668969014 413027032418219 4070A788

보시다시피 처음 두 줄과 마지막 두 줄은 key1과 key2의 문자열을 사용하여 연결될 수 있습니다. 그러나 마지막 필드에는 일치하는 필드가 없습니다.

기본적으로 이 쌍을 일치시키고 아래와 같이 새 테이블을 만들어야 합니다.

시작일 시간 종료일 시간 1번 2번
2022년 11월 21일 0:01 2022년 11월 21일 0:02 1668969012 413027032418217
2022년 11월 21일 0:03 2022년 11월 21일 0:04 1668969013 413027032418218
2022년 11월 21일 0:05 1668969014 413027032418219

이것이 제가 지금까지 시도한 것입니다. 그러나 이것은 내가 필요한 것을 제공하지 않습니다. 누군가 여기에 오류가 무엇인지 말해 줄 수 있습니까?

SELECT 
    t1.start_date_time, t2.start_date_time AS end_date_time, t1.number1, t1.number2
FROM details_all AS t1
    JOIN details_all AS t2
      ON t1.key1 = t2.key2

P粉448346289P粉448346289380일 전569

모든 응답(1)나는 대답할 것이다

  • P粉278379495

    P粉2783794952023-09-10 09:53:30

    오류는 간단합니다. INNER JOIN은 완전한 쌍만 선택합니다.

    모든 키 값을 별도의 하위 쿼리로 수집한 다음 그 안에 데이터를 조인해야 합니다.

    으아악

    key1 值始终存在,而 key2에 동일한 값이 없으면 간단한 LEFT JOIN을 사용할 수 있습니다.

    으아악

    회신하다
    0
  • 취소회신하다