2013-01-05 3 views
1

나는 다른 테이블의 식별자와 다른 열의 최대 값을 기반으로 하나의 열에 고유 한 값을 가져 오려고합니다. 이것은 나의 구조이다. (아직 만료되지 않은 표 1에 ITEM_ID에 따라 보상 수준의 최대 값에 대한 cust_loadout_id 및 playerID) 내가 좀하고 싶습니다 무엇Mysql 두 개의 테이블을 결합하는 동안 고유 한 최대 열

Partial Table 1 (reward_webuid): 
╔════╦═════════╦═════════╦══════════╦═════════════════════╦═════════╗ 
║ ID ║ WEB_UID ║ ITEM_ID ║ PLAYERID ║  TIMESTAMP  ║ EXPIRED ║ 
╠════╬═════════╬═════════╬══════════╬═════════════════════╬═════════╣ 
║ 8 ║ 1209520 ║ 73410 ║ 1926406 ║ 2013-01-05 04:47:06 ║  0 ║ 
║ 9 ║ 1209520 ║ 73425 ║ 1926406 ║ 2013-01-02 09:40:27 ║  1 ║ 
║ 10 ║ 1209520 ║ 73424 ║ 1926406 ║ 2013-01-05 09:40:05 ║  0 ║ 
║ 11 ║ 1209520 ║ 73425 ║ 1926406 ║ 2013-01-05 09:40:27 ║  0 ║ 
║ 12 ║ 1209521 ║ 73424 ║ 21555896 ║ 2013-01-05 01:33:20 ║  0 ║ 
║ 13 ║ 1209521 ║ 75000 ║ 5599854 ║ 2013-01-05 01:35:09 ║  1 ║ 
╚════╩═════════╩═════════╩══════════╩═════════════════════╩═════════╝ 

Partial Table 2 (rewards): 
╔═════════╦═════════════════╦══════════════╦═════════════╗ 
║ ITEM_ID ║ CUST_LOADOUT_ID ║ REWARD_LEVEL ║ EXPIRY_TIME ║ 
╠═════════╬═════════════════╬══════════════╬═════════════╣ 
║ 73410 ║    1 ║   5 ║   0 ║ 
║ 73424 ║    2 ║   10 ║   0 ║ 
║ 73425 ║    3 ║   15 ║   30 ║ 
║ 75000 ║    4 ║   50 ║   60 ║ 
╚═════════╩═════════════════╩══════════════╩═════════════╝ 

샘플 반환은 playerID

당 하나의 값이 있어야한다
╔══════════╦═════════════════╗ 
║ PLAYERID ║ CUST_LOADOUT_ID ║ 
╠══════════╬═════════════════╣ 
║ 1926406 ║    3 ║ 
║ 21555896 ║    2 ║ 
╚══════════╩═════════════════╝ 

누구든지 도움을 주시면 감사하겠습니다. 내가 검색 한 대부분의 쿼리는 같은 테이블 또는 3 개 이상의 테이블과 관련이 있습니다. 내가 관리했습니다 가장 내가 필요한 데이터를 반환하는 것입니다하지만 제대로

답변

1
SELECT a.*, b.* 
FROM reward_webuid a 
     INNER JOIN rewards b 
      ON a.item_id = b.item_ID 
     INNER JOIN 
     (
      SELECT aa.PLAYERID, MAX(bb.REWARD_LEVEL) maxLevel 
      FROM reward_webuid aa 
        INNER JOIN rewards bb 
         ON aa.item_id = bb.item_ID 
      WHERE aa.expired = 0 
      GROUP BY aa.PLAYERID 
     ) c ON a.PLAYERID = c.PLAYERID AND 
       b.REWARD_LEVEL = c.maxLevel AND 
       a.Expired = 0 
+0

감사 JW을 주문하지 않은 - 내가 선택한에서 DISTINCT를 던져했다 열 데모는 완벽하게 작동했습니다. – user1928477

관련 문제