【问题标题】:How can I query 2 tables and return results if 2nd table matches condition如果第二个表匹配条件,我如何查询 2 个表并返回结果
【发布时间】:2021-04-09 16:12:34
【问题描述】:

我开发了一款游戏,其中包含许多锦标赛。所有正在进行的锦标赛都存储在 running_tournaments 表中。当玩家进入锦标赛时,他们在该锦标赛中的得分会保存在scores表中。

我想编写一个脚本,定期检查数据库以查看是否有任何锦标赛已经结束(它们的 end_date 是过去的)并且该锦标赛的所有分数都已“验证”。当该分数的验证值为“1”时,该分数被视为已验证。

我如何查询这些表以返回所有锦标赛的锦标赛 ID,其中该锦标赛的所有分数都已验证(已验证 = 1)?

例如,给定下面的数据,如果今天的日期是 1 月 3 日,则查询应该只返回锦标赛 id #1。锦标赛 id 1 有两个已验证的分数,并且日期在今天或之前。所有其他锦标赛要么在未来进行,要么有 1 个或多个未验证的分数。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    嗯。 . .我认为joingroup by 可以满足您的需求:

    select s.tourn_id
    from scores s join
         running_tournaments rt
         on s.tourn_id = rt.id
    where end_date <= curdate()
    group by s.tourn_id
    having min(s.verified) = 1;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-16
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多