MySQL 嵌套选择查询使用主查询中的数据

MySQL Nested Select Querys using data from main query

提问人:Carlos Crespo Moreno 提问时间:9/2/2021 最后编辑:Carlos Crespo Moreno 更新时间:9/9/2021 访问量:52

问:

我编辑了这个问题,使问题更简单,并在 coments 中添加了建议的更改,非常感谢

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

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

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

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

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

期望的结果

enter image description here

我只需要在MySql中的一个查询中获取所有信息...我对 JOINS、SUBQUERIES 越来越疯狂,....他们不能按照我的意思去做。非常感谢一些帮助 谢谢!

MySQL 嵌套

评论

1赞 Akina 9/2/2021
屏幕截图不安全。提供 CREATE TABLE + INSERT INTO 脚本。并显示所需的结果。
0赞 Carlos Crespo Moreno 9/3/2021
感谢您的评论!我已经尽我所能添加了信息,因为我缺少对所需结果的查询。我希望它有所帮助
0赞 TheSatinKnight 9/8/2021
除了将 SQLFIDDLE 放在 SQLFIDDLE 上之外,请在此处发布 SQLFIDDLE 的内容。通常,将整个问题包含在本网站上是一种礼貌的做法,而不是有外部要求来阅读整个问题。此外,包括指向 SQLFIDDLE 的链接也是一个不错的“插件”。
0赞 Carlos Crespo Moreno 9/9/2021
添加!,我是新来的,所以我很感激你的建议

答:

0赞 TheSatinKnight 9/8/2021 #1

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

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

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

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

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

一旦你写好了它,你可能会把它们组合成一个函数/字段。但。。。婴儿步骤。像我们其他人一样。:)

评论

1赞 Carlos Crespo Moreno 9/9/2021
谢谢你的评论!我想到了类似的东西,但我放弃了它,因为如果有任何匹配更新,我应该检查并更新其他列的条纹。无论如何,如果我没有找到“即时”的方法,我会重新考虑