2014-12-01 6 views
-3

다음과 같이 필드가 포함 된 두 개의 테이블이 있습니다.MySQL에서 간단한 크로스 탭 쿼리를 작성하는 방법

표 1

| SetID | InQty | Day | 
    | 1 | 10 | 1 | 
    | 2 | 10 | 2 | 
    | 3 | 10 | 3 | 

표 표 2에서 2

| SetID | OtQty | Day | 
    | 1 | 1 | 5 | 
    | 1 | 2 | 6 | 
    | 1 | 3 | 7 | 

SetID이 날은 단지 편의상, 날짜의 장소에 배치됩니다 표 1에 SetId와 연결되어 있습니다. 예상 출력,

| Day | InQty | OtQty | 
    | 1 | 10 |  | 
    | 5 |  | 1 | 
    | 6 |  | 2 | 
    | 7 |  | 3 | 

빈 공간은 NULL 또는 0으로 채울 수 있습니다.

답변

0

은 내가 세트 2 인/아웃 값을 참조하십시오 기대하고 3. 당신은

select t1.Day, t1.InQty, 0 OutQty 
    from Table1 t1 
    where SetID = 1 
    order by t1.Day 
union select t2.Day, 0, t2.OtQty 
    from Table2 t2 
    where SetID = 1 

이제 간단한 UNION으로 얻을 수 있어야합니다, 당신은 그렇지 만 세트 ID = 1 쿼리하는 표시 합계가 다른 "setID"에 걸쳐 있고 서로 차별화되도록하려면 setID를 열로 추가하고 group by 절에도 추가하면됩니다.