안녕하세요, 오랜만에 테이블 조인 관련해서 질문 올립니다.
1.
고객번호 | 물품번호 | A 물품 갯수 | 구매시각 |
1 | 10002 | 50 | 2014-08-06 7:28:57 |
2 | 51020 | 9 | 2014-08-11 6:23:43 |
1 | 51020 | 9 | 2014-08-11 9:13:15 |
3 | 51011 | 5 | 2014-08-12 11:23:45 |
1 | 51020 | 9 | 2014-08-12 12:01:47 |
1 | 51020 | 9 | 2014-08-12 12:36:09 |
4 | 51011 | 5 | 2014-08-12 7:16:04 |
2.
고객번호 | 물품번호 | B 물품 갯수 | 구매시각 |
2 | 10004 | 700 | 2014-08-06 5:52:35 |
4 | 10003 | 500 | 2014-08-06 6:00:45 |
1 | 10004 | 700 | 2014-08-06 7:02:25 |
1 | 11024 | 1500 | 2014-08-06 7:12:28 |
1 | 11025 | 3000 | 2014-08-06 7:17:25 |
1 | 10003 | 500 | 2014-08-06 7:19:46 |
8 | 11024 | 1500 | 2014-08-06 7:19:56 |
3.
고객번호 | 물품번호 | A 물품 갯수 | B 물품 갯수 | 구매시각 |
1 | 10002 | 50 |
| 2014-08-06 7:28:57 |
1 | 51020 | 9 |
| 2014-08-11 9:13:15 |
1 | 51020 | 9 |
| 2014-08-12 12:01:47 |
1 | 51020 | 9 |
| 2014-08-12 12:01:47 |
1 | 10004 |
| 700 | 2014-08-12 12:36:09 |
1 | 11024 |
| 1500 | 2014-08-06 7:02:25 |
1 | 11025 |
| 3000 | 2014-08-06 7:12:28 |
1 | 10003 |
| 500 | 2014-08-06 7:17:25 |
2 | 51020 | 9 |
| 2014-08-06 7:19:46 |
2 | 10004 |
| 700 | 2014-08-11 6:23:43 |
3 | 51011 | 5 |
| 2014-08-06 5:52:35 |
4 | 51011 | 5 |
| 2014-08-12 11:23:45 |
4 | 10003 |
| 500 | 2014-08-12 7:16:04 |
8 | 11024 |
| 1500 | 2014-08-06 7:19:56 |
1과 2의 테이블을 합쳐서 3처럼 나오게 하고 싶습니다. 다른 종류의 물품 거래를 저장하는 테이블 1, 2를 한 테이블에 보여주고 싶은데 물품번호와 고객번호, 구매시각은 1, 2번 합쳐 같은 컬럼으로 보이되 A 물품 갯수와 B의 물품갯수는 따로 컬럼으로 보여줘야 합니다. 빈 칸은 null이나 0으로든 상관없고요.
SELECT 고객번호,물품번호, A.A물품갯수, B.B물품갯수, 구매시각 FROM 1테이블 AS A FULL OUTER JOIN 2테이블 AS B ON A.고객번호 = B.고객번호 WHERE (A.고객번호 = 1) AND (B.물품번호 BETWEEN '10000' AND '10004' ) AND ( A.물품번호 BETWEEN '10000' AND '10004' )
이렇게 1번 고객의 구매한 내역중 10000~10004까지의 물품만 보려고 SELECT를 했더니 고객번호와 물품번호, 구매시각을 특정할 수 없다고 나오고 A.고객번호, B.고객번호 이렇게 하면 다른 칼럼으로 보이는데 어떻게 3번처럼 SELECT할 수 있는 방법은 없는지요ㅠㅠ
Comment 2
-
이리
2015.02.03 18:58
-
hexcat
2015.02.05 10:06
아래 쿼리 참고하시기 바랍니다.
-- JOIN(X) CONCATENATION(O)
SELECT 고객번호
,물품번호
,A물품갯수
,0 AS B물품갯수
,구매시각
FROM 1테이블 AS A
WHERE A.고객번호 = 1
AND A.물품번호 BETWEEN '10000' AND '10004'
UNION ALL
SELECT 고객번호
,물품번호
,0 AS A물품갯수
,B물품갯수
,구매시각
FROM 2테이블 AS B
WHERE B.고객번호 = 1
AND B.물품번호 BETWEEN '10000' AND '10004'
UNION으로 해서 정렬하면 되지 않을까요 ^^;;