首页 > 解决方案 > 使用来自主查询的数据的 MySQL 嵌套选择查询

问题描述

我已经编辑了问题以使问题更简单,并在评论中添加了建议的更改,非常感谢

我有一个与数据匹配的表,我需要:

1-获取日期之前的所有匹配列。

http://sqlfiddle.com/#!9/4ff02f/18

SELECT m1.* FROM matches AS m1 WHERE m1.date < '2019-02-23 00:00:00'

2-我需要在每场比赛(或行)中为主队和客队添加两列“连胜记录”。球队的“连胜纪录”是在同一场比赛中,在当前比赛日期之前的比赛次数,直到球队输掉一场比赛(主场或客场模糊)。结果将是这样的:

期望的结果

在此处输入图像描述

我只需要在 MySql 中的一个查询中获取所有信息……而且我对 JOINS、SUBQUERIES、……感到疯狂。他们无法做到我的意思。非常感谢一些帮助谢谢!

标签: mysqlnested

解决方案


听起来您只想为条纹填充特定字段并且想要累积数据。您可能需要使用不显示(不可见或仅在最后)的字段来表示“赢/输”和累积数据来提供计数。

我现在没有时间编写完整的解决方案,但这对于“评论”来说太长了,所以请耐心等待:

  1. 在主场和客场添加“赢”列。相应地放置一个 1 或 0。

  2. 如果 Win 为 1,则为连续添加列并有条件地包含 Win 的累积计数。但如果 Win 为零,则将累积设置回零。

CASE 示例:https ://www.w3schools.com/mysql/func_mysql_case.asp

累积示例:https ://popsql.com/learn-sql/mysql/how-to-calculate-cumulative-sum-running-total-in-mysql

编写完成后,您可能会将它们组合成一个函数/字段。但是......婴儿步骤。像我们其他人一样。:)


推荐阅读