database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6275 게시물 읽기
No. 6275
join 방법 질문입니다.
작성자
주딩이
작성일
2011-11-13 16:46ⓒ
2011-11-13 16:54ⓜ
조회수
6,702


유저 Table + Item 테이블이 있는데,
2개의 Table 을 join 을 해서 하나의 Tuple 로 만들고 싶습니다.

A 라는 유저가 가지고 있는 Item은 XXX 다!!

join 으로 해결되는건가요?
(서브쿼리도 상관없습니다)


키는 UserID 입니다.
 



User Table
---------------------------
| User ID     |    User Name   |
---------------------------
|    1001      |       개똥이       |
---------------------------
|    2003     |        소똥이       |
---------------------------



유저당 최대 5개의 Item 을 가질 수 있음.

Item Table
----------------------------
| Item ID | Item Name | User ID |
----------------------------
|       0    |    ArmorX    |    1001  |
----------------------------
|       3    |    ArmorY    |    1001  |
----------------------------
|       2    |    ShieldX    |   2003  |
----------------------------
|       3    |     ShieldY   |   2003  |
----------------------------
|       4    |    ShieldZ    |   2003 |
----------------------------



만들고자 하는 최종 Table
----------------------------------------------------------------
| User ID |    Item 0 |     Item 1 |    Item 2 |     Item 3 |    Item 4 |    Item 5 |
----------------------------------------------------------------
|     1001 | ArmorX |    (null)   |    (null)   | ArmorY |   (null)   |    (null)  |
-----------------------------------------------------------
|     2003 |   (null)   |    (null)   | ShieldX | ShieldY | ShieldZ |   (null)  |
----------------------------------------------------------------

 

 

이 글에 대한 댓글이 총 1건 있습니다.

SELECT a.UserID
  , MAX(CASE WHEN ItemID = 0 THEN ItemName ELSE '' END) Item0
  , MAX(CASE WHEN ItemID = 1 THEN ItemName ELSE '' END) Item1
  , MAX(CASE WHEN ItemID = 2 THEN ItemName ELSE '' END) Item2
  , MAX(CASE WHEN ItemID = 3 THEN ItemName ELSE '' END) Item3
  , MAX(CASE WHEN ItemID = 4 THEN ItemName ELSE '' END) Item4
  , MAX(CASE WHEN ItemID = 5 THEN ItemName ELSE '' END) Item5
  FROM UserTable a
  INNER JOIN ItemTable b ON a.UserID = b.UserID
 GROUP BY a.UserID

.님이 2011-11-14 09:20에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
6278웹 문제를 랜덤 축출하는 방법좀 알려주세요. [2]
패션리더
2011-11-27
6537
6277[질문] SQL 2008 Std R2 트랜젝션 로그 파일 정리 방법???? [2]
궁금이
2011-11-17
6606
6276Log Shipping 시간을 줄이는 방법이 있을까요? [1]
돈세자
2011-11-15
6643
6275join 방법 질문입니다. [1]
주딩이
2011-11-13
6702
6272특정필드 업데이트하는 쿼리 또는 프로그램 찾기.. [1]
오리무중
2011-11-11
7188
6268뷰 삭제 관련 [1]
궁금이
2011-11-10
6903
6267날짜사이의 데이터 가져오기 [15]
저널리즘
2011-11-09
14398
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다