SQL查询获取记录数为0,使用2个表

时间:2015-03-25 10:46:32

标签: mysql sql mysqli phpmyadmin

表格结构 enter image description here

表结构简介

我们有2个表重量 Weight_Sub ,它们都是相同的。我们的用户每2天称重一次,每个团队都有一名队长。因此,在每个称重团队队长根据 Weight_Sub 表中的日期添加权重后,我们在权重表中添加权重 0 。一旦团队成员接受该分数,我们将从 Weight_Sub 中删除它们,并更新主表中的分数,即权重。例如:如果2015年1月1日的球员体重为98KG,我们将在 Weight_Sub = 98并且体重 = 0时添加记录。一旦球员接受那个重量然后我们将从 Weight_Sub 表中删除该行,并将重量表中的权重从0更新为98.

我希望这是有道理的。

问题 我们想要在玩家接受他错过任何称重的分数时进行检查。如上表中03/03/2015两张表所示,重量为0,0表示玩家错过了称重。我们希望得到那些错过的称重日期。事情是我们只想要在接受最后一次重量后错过称重日期,在本例中为2015年3月3日。

因此,如果您看到上面的图像,则球员在03/03/2015错过称重,但在2015年3月7日,他接受了100KG的重量。之后,他错过了连续3次称重,然后在15/03/2015接受了。因此查询应返回3个日期,即09/03 / 2015,11 / 03 / 2015,13 / 03/2015。

我知道可以通过运行循环使用PHP来完成,当我找到被记录的分数并获得错过称量的日期时可以使用PHP,但是如果有的话我会寻找更高效的东西。< / p>

提前感谢您的时间和精力。

1 个答案:

答案 0 :(得分:0)

此查询将在给定日期之前返回错过的记录。

select w1.ID, w1.Date, w1.Weight
from `WeightTable` w1
where w1.Date < '07/03/2015' and w1.Weight = 0