2015-10-06 87 views
0

我想在爲我的幻想足球聯賽創造樂趣的同時學習mysql。我創建了一張桌子,可以容納我們曾經玩過的每場比賽,並且希望能夠查詢桌面以顯示任何給定所有者的頭對頭記錄。因此,例如,A隊VS B隊或A隊VS團隊D.設置並查詢數據庫以查看頭對頭記錄

這裏是我想爲我的表:

Table

1 - 如果沒有設置表更好的辦法洗耳恭聽。

第二 - 我一直無法找到拉這個信息,至少不是那個有意義或爲我工作。任何人都可以幫助我開始?

謝謝

+0

表設置看起來不錯,很簡單。在關係數據庫中爲團隊名稱設置單獨的表格可能很有意義,但您的方式可行。你想看到總分或全年總分嗎? – Dan

+1

你現在有什麼好的。請參閱聯盟 – Strawberry

+0

首先,我希望能夠在兩支球隊之間一直保持勝負。因此,例如,我想在隊員B出場時顯示隊伍A的歷史記錄。 – aboutbeer

回答

0

這裏有一個直接的方式與您的給定的表。

SELECT COUNT(game_id) 
FROM `games` 
WHERE (
home_score > away_score 
AND home_owner = 'TEAM A' 
AND away_owner = 'TEAM B' 
) 
OR (
home_score < away_score 
AND home_owner = 'TEAM B' 
AND away_owner = 'TEAM A' 
) 

COUNT(game_id)是一個會計算查詢結果的函數。在WHERE聲明中,第一個返回的地方是TEAM A(主場)踢了TEAM B(客場),TEAM A贏了。第二個回報TEAM B(主場)踢TEAM A(客場)和TEAM A贏得)。

有可能是一種更優雅的方式來構造表,但我認爲這是學習SQL的基礎知識的好方法。

+0

這會讓我開始學習更多。謝謝你,我很感激! – aboutbeer

+0

當我運行這個查詢時,我得到的是:COUNT(game_id)\t 0.任何想法爲什麼它不返回一個數字? – aboutbeer

+0

我在第一個WHERE子句中有一個TEAM A和TEAM B之間的錯誤。我修好了它。看看它現在是否有效。另外,考慮到你的樣本表,TEAM A從來沒有贏過TEAM B.所以除非表格已經改變,否則0是正確的答案。 – Dan