我是一位IT分析師,試圖學習一些SQL,以幫助我以更高效的方式與開發人員合作。給自己一個小小的個人項目來幫助我學習SQL,並遇到一些我希望你們都可以幫助我的問題。SQL查詢寫作幫助 - 在一個記錄中查找多個
背景
我有飛鏢的興趣,所以我想建立一個數據庫,以記錄我的每一個圈。如果你不熟悉飛鏢,每轉都由三個擲鏢靶組成。
我設計一個數據庫有兩個表:
「打開」跟蹤每個玩家的回合。
- TurnID是主鍵,是一個自動遞增的整數。
- Throw1包含玩家第一次扔的結果。
- Throw2包含玩家第二次投擲的結果。
- Throw3包含了玩家第三次投擲的結果。
「ScoreValues」是一個參考表,其中列出了分數和分數值。每條記錄將一個「分數」與一個「價值」相關聯。 「分數」是主鍵。
- 得分是主鍵,代表了一次投擲的可能結果。
- Value包含玩家的投擲值。所以「S20」值20分。
表摘錄/樣品
打開
TurnID Throw1 Throw2 Throw3
101 S20 S16 S18
102 S16 S19 S17
ScoreValues
Score Value
S20 20
S19 19
S18 18
S17 17
S16 16
S15 15
查詢
這是挑戰開始的地方。我要尋找一個查詢,將產生一個輸出,看起來像如下:
TurnID Throw1 Throw2 Throw3 Throw1Value Throw2Value Throw3Value
101 S20 S16 S18 20 16 18
102 S16 S19 S17 16 19 17
如果我運行下面的查詢,我可以排序得到什麼我正在尋找,但只爲Throw1:
SELECT Turns.TurnID, Turns.Throw1, Turns.Throw2, Turns.Throw3, ScoreValues.Value
FROM Turns
INNER JOIN Values on Turns.Throw1 = ScoreValues.Score
對於如何獲得預期輸出,您有任何建議嗎?請讓我知道,如果有什麼不清楚。
謝謝!
K
嘗試'pivot'表格方式。 – Bharadwaj
答案取決於你的rdbms,你沒有指定。 –
哎呀,對不起,我不喜歡看到重複的答案,但是當我發佈我的時候沒有答案,這顯然與@ jmo1687是一樣的。 – Ron