2015-10-06 70 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