join?? sub query? 방법 질문입니다. 0 4 1,639

by 주딩이 [SQL Query] [2011.11.12 17:44:44]




가급적 질문의 제목을 명확히 하려는 성격인데 이것조차 아는게 적으니 쉽지 않네요

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

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

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


띄어쓰기가 제대로 안먹어서
줄맞추기용으로 점(.)을 좀 넣었습니다.
무시하셔도 됨



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) |
---------------------------------------------------------------------------------------------------------
by 최명규 [2011.11.13 14:08:38]
두 테이블이 서로 키로 연결되어 있다면 조인 하면될꺼같은데... 키를 몰라서 애매 하네요;;

by finecomp [2011.11.13 15:24:02]
질문처럼 유저당 Max Item개수가 5개 Item까지로 제한된다는 업무규칙을 정할 수 있다면 Static SQL로도 가능합니다.
(현재는 조인이 필요없는데요? 이 정도는 필요하다면 직접하시길...^^;)
SELECT UserID
, MIN(DECODE(itemID, 0, ItemName)) AS "Item 0"
, MIN(DECODE(itemID, 1, ItemName)) AS "Item 1"
, MIN(DECODE(itemID, 2, ItemName)) AS "Item 2"
, MIN(DECODE(itemID, 3, ItemName)) AS "Item 3"
, MIN(DECODE(itemID, 4, ItemName)) AS "Item 4"
FROM Item
GROUP BY UserID

by 주딩이 [2011.11.13 16:44:03]
최명규님 // Key 는 UserID 입니다~ 이걸 안적어놨었네요.

finecomp 님//
해봤는데 GroupBy 로 인하여 한행에 모든 정보가 안나오네요
가령 UserID 가 1001 인 Table 을 쿼리했을 때 Item0 만 나옵니다
제가 잘못한것인지요 ㅇ_ㅇ??

by 힘센올챙이 [2011.11.14 09:23:57]
유저 테이블과 아이템 테이블 KEY로 조인하여 finecomp 님 쿼리 사용하시면 됩니다
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입