집 >데이터 베이스 >MySQL 튜토리얼 >구조는 비슷하지만 범주가 다른 두 테이블을 단일 출력 테이블로 결합하려면 어떻게 해야 합니까?
단일 출력을 위해 두 테이블 결합
데이터베이스 작업을 수행하려면 여러 소스의 데이터를 결합된 출력으로 병합해야 하는 경우가 많습니다. 일반적인 과제는 유사한 구조이지만 카테고리가 다른 테이블을 결합하는 것입니다. 다음 문제를 생각해 보십시오.
ChargeNum(고유 식별자), CategoryID(범주 할당), Month(날짜) 및 Hours( 실제 값). 작업은 월 열을 무시하고 이러한 테이블을 단일 데이터 테이블로 결합하고 시간을 ChargeNum 및 CategoryID별로 그룹화하는 것입니다.
예상 출력은 다음과 같습니다.
ChargeNum CategoryID Hours 111111 1 90 111111 2 50 111111 Unknown 110.5 222222 1 40 222222 Unknown 25.5
이를 달성하려면 , 두 쿼리의 결과를 결합하는 UNION 연산자를 활용할 수 있습니다. 이 문제에 대해 두 개의 쿼리를 구성합니다.
쿼리 1:
SELECT ChargeNum, CategoryID, SUM(Hours) FROM KnownHours GROUP BY ChargeNum, CategoryID
이 쿼리는 각각에 대한 ChargeNum, CategoryID 및 Hours 합계를 검색합니다. "KnownHours" 테이블의 조합.
쿼리 2:
SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours) FROM UnknownHours GROUP BY ChargeNum
이 쿼리는 "UnknownHours" 테이블의 각 항목에 대해 ChargeNum과 Hours의 합계를 검색하고 'Unknown'을 CategoryID로 할당합니다.
두 항목을 결합합니다. UNION ALL을 사용하는 쿼리는 원하는 출력을 생성합니다.
SELECT ChargeNum, CategoryID, SUM(Hours) FROM KnownHours GROUP BY ChargeNum, CategoryID UNION ALL SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours) FROM UnknownHours GROUP BY ChargeNum
UNION ALL 연산자는 병합합니다. 중복을 제거하지 않고 결과를 확인하여 결합된 데이터를 전체적으로 볼 수 있습니다.
위 내용은 구조는 비슷하지만 범주가 다른 두 테이블을 단일 출력 테이블로 결합하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!