Php mysql A队进球总数
我试图找出A队在过去6场比赛中的得分和失球总数,无论A队是主队还是客队。 例如:我们假设$teamA='Arsenal'并搜索最后6个结果 结果如下:Php mysql A队进球总数,php,mysql,Php,Mysql,我试图找出A队在过去6场比赛中的得分和失球总数,无论A队是主队还是客队。 例如:我们假设$teamA='Arsenal'并搜索最后6个结果 结果如下: Leicester City 1 - 1 Arsenal Everton 2 - 2 Arsenal Arsenal 2 - 1 Crystal Palace Norwich City 0 - 2 Arsenal Arsenal 1 - 0 West Bromwich A
Leicester City 1 - 1 Arsenal
Everton 2 - 2 Arsenal
Arsenal 2 - 1 Crystal Palace
Norwich City 0 - 2 Arsenal
Arsenal 1 - 0 West Bromwich Albion
Arsenal 3 - 0 Newcastle United
上面是获取最后6个结果的查询输出,现在我需要获取$teamA和$teamB的目标总数
$query = mysql_query("SELECT * FROM football WHERE `HomeTeam` = '$teamA' OR AwayTeam = '$teamA' ");
while ($row = mysql_fetch_array($query)){
if ($row['HomeTeam'] = $teamA){
$teamAgoals = $teamAgoals + $row['FTHG'];
}
if ($row2['AwayTeam'] = $teamA){
$teamAgoals = $teamAgoals + $row['FTAG'];
}
$tot++;
if ($tot == 7):
exit;
endif;
}
我遇到的问题是,查询返回的是最近6场主场比赛或最后6场客场比赛 您可以使用
case
表达式来确定球队是主队还是客队:
SELECT SUM (CASE WHEN `HomeTeam` = '$teamA' THEN fthg ELSE ftag END)
FROM football
WHERE '$teamA' IN (`HomeTeam`, `AwayTeam`)
ORDER BY `MatchDate` DESC -- I'm guessing there's something like this
LIMIT 6
@Mureinik我尝试了你的解决方案,经过一点调整,我得到了我需要的答案,谢谢你的帮助。我开始犯这个错误 每个派生表都必须有自己的别名 我在查询中添加了一个别名“totals”,效果非常好
SELECT SUM(CASE WHEN `HomeTeam` = 'Arsenal' THEN FTHG ELSE FTAG END) AS scored, SUM(CASE WHEN `AwayTeam` = 'Watford' THEN FTHG ELSE FTAG END) AS conceeded FROM ( SELECT Hometeam,Awayteam,FTHG,FTAG FROM football WHERE 'Arsenal' IN (`HomeTeam`, `Awayteam`) ORDER BY `id` DESC LIMIT 6) as totals
你能提供模式吗?另外,在新代码中使用mysql_*函数是不推荐的。考虑切换到或替换。你想要什么结果?你如何定义“最后六场比赛”?有时间戳吗?你能显示表格结构吗?嗨,表格行是id、HomeTeam、AwayTeam、FTHG、FTAG谢谢我会改成mysqli。结果是按id DESC排序的。我需要的结果是teamA的总分和TeamBI的总分。我尝试了这一点,但不限于6,是否可以使用这一点进行子查询