這裏發生了這麼有趣的事情,我使用MySql DB並試圖根據同一個表中的同一列進行連接(我在不同的別名下選擇了該連接) 。如果有人能告訴我這個問題的原因和/或可能修復我的SQL,我將不勝感激。連接來自同一個表的列兩次會導致未知的列問題
我有什麼是三個表:
Tourneyplayers:
tp_id | tourneyId | ageId
1 | 1 | 1
2 | 1 | 1
3 | 1 | 2
這有涉及到我的比賽所有主要球員的數據。它將實際玩家資料和錦標賽鏈接在一起。
預賽:
heatId | heatNumber
1 1
2 3
3 4
預賽基本上是莫託斯的基團。
MOTOS:
mid | idHeat | result | tpid
1 | 1 | 1 | 1
2 | 3 | 1 | 1
3 | 1 | 2 | 2
4 | 3 | 2 | 2
3 | 2 | 3 | 3
這是我想從基礎上heatNumber
值的兩倍查詢結果表。 heatNumber
值是靜態的,它們是1
AND 4
。
所以我想我的查詢從表motos
返回的結果,如果heatNumber
是1
,並從表motos
返回的結果,如果heatNumber
是4
並限制我的結果tourneyId
和ageId
。
所以,如果我想查詢結果與tourneyId = 1
和ageId = 1
那麼結果將是:
結果:
tp_id | result_when_heat_number_is_1 | result_when_heat_number_is_4 | sum_of_results
1 | 1 | 1 | 2
2 | 2 | 2 | 4
我試着寫了查詢,但我不那麼熟悉SQL我已經慘遭失敗(未完成和已損壞):
SELECT tp.tp_id, m1.result as r1, m2.result as r2
FROM tourneyplayers tp, motos m1, motos m2
INNER JOIN heats as h1 ON (m2.idHeat = h1.heatId)
INNER JOIN heats as h2 ON (m1.idHeat = h2.heatId)
WHERE tp.tp_id = m1.tpid
AND tp.tp_id = m2.tpid
AND tp.tourneyId = 115
AND ageId = 16
我不知道如果我有一個正確的道路上,我嘗試加入預賽TWIC e爲兩個motos,但這給了我一個錯誤#1054 - Unknown column 'm1.idHeat' in 'on clause'
,我跑出了想法。希望有人能幫助:)
添加heatNumber = 1&heatnumber = 4解決了這個問題,因爲你更快(並且給出了與@scaisEdge相同的結果),我將你標記爲答案:) – Banana