Re: [SQL ] MySQL請問同時撈出任務基本資訊與執行뀠…
SELECT m.`name`, m.`length`, m.`level`, r.`result`, r.`spend_time`
FROM `record` r
INNER JOIN
(SELECT MAX(ai) AS `ai`
FROM `record` r
WHERE r.`result` = 1
GROUP BY r.`m_id`) r1
ON r.`ai` = r1.`ai`
INNER JOIN `mission` m
ON r.`m_id` = m.`id`
索引記得建 (id, m_id, result 等)
取第一個可以, 如果要取前 n 個的話就很麻煩, 參考: http://goo.gl/nQtDW
※ 引述《jiyon (愛)》之銘言:
: 資料庫版本 MySQL 5.1
: 說明:假設賽車遊戲中各個賽道的基本資訊存在「任務」表格
: ,而每次跑某一個賽道的記錄存在「記錄」表格,如下表所示:
: mission(任務) record(記錄)
: -------------------------------- ----------------------------------------
: ai id(PK) name length level ai id(PK) m_id(FK) result spend_time
: 賽道名 距離 難度 結果名次 花費時間
: -------------------------------- ----------------------------------------
: 其中ai是AUTO_INCREMENT欄位、id是UUID()產生的主鍵欄位
: record.m_id是參照到mission.id的外來鍵
: result是INT型態,表示第幾名
: 每筆記錄只會對應到一個任務,而一個任務會有多個跑的記錄,也可能沒有(還沒跑)
: 測試資料如下:(id部份有簡化)
: mission(任務)
: --------------------------------
: ai id(PK) name length level
: 1 d482 鈴鹿賽道 28 2
: 2 d6b0 筑波賽道 36 4
: 3 d7a1 茂木賽道 20 1
: --------------------------------
: record(記錄)
: ----------------------------------------
: ai id(PK) m_id(FK) result spend_time
: 1 7d24 d482 1 00:04:57 (對應到鈴鹿賽道)
: 2 7dfa d7a1 8 00:10:23 (對應到茂木賽道)
: 3 51d8 d482 12 00:12:28 (對應到鈴鹿賽道)
: 4 17d3 d7a1 1 00:06:11 (對應到茂木賽道)
: 5 5755 d7a1 1 00:05:59 (對應到茂木賽道)
: ----------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 71.93.105.54
※ 編輯: danielguo 來自: 71.93.105.54 (02/27 04:25)
推
02/27 15:46, , 1F
02/27 15:46, 1F
討論串 (同標題文章)