MySQL从一个表中减去第二个表中的某些行的值

用户名

我有2个牌桌玩家:

| ID | PLAYER | WARNINGS |
|----|--------|----------|
|  1 |      a |       35 |
|  2 |      b |       70 |
|  3 |      c |       65 |

警告:

| ID | PLAYER | POWER | ACTIVE |       TIMEEND |
|----|--------|-------|--------|---------------|
|  1 |      a |     5 |      1 | 1388051312120 |
|  2 |      a |    10 |      1 | 1388051312120 |
|  3 |      a |    20 |      1 | 1388051312120 |
|  4 |      b |    30 |      1 | 1388051312120 |
|  5 |      b |    40 |      1 | 1388051312120 |
|  6 |      c |    10 |      1 | 1388051312120 |
|  7 |      c |    55 |      1 | 1388051312120 |

我想从检查每一行warns那里warns.active=1,然后,如果warns.timeend <= NOW()删除(减)一个warns.powerplayers.warningsplayer和变化warns.active=2

因此,此后的表必须如下所示:

玩家:

| ID | PLAYER | WARNINGS |
|----|--------|----------|
|  1 |      a |        0 |
|  2 |      b |        0 |
|  3 |      c |        0 |

警告:

| ID | PLAYER | POWER | ACTIVE |       TIMEEND |
|----|--------|-------|--------|---------------|
|  1 |      a |     5 |      2 | 1388051312120 |
|  2 |      a |    10 |      2 | 1388051312120 |
|  3 |      a |    20 |      2 | 1388051312120 |
|  4 |      b |    30 |      2 | 1388051312120 |
|  5 |      b |    40 |      2 | 1388051312120 |
|  6 |      c |    10 |      2 | 1388051312120 |
|  7 |      c |    55 |      2 | 1388051312120 |

我只有那个:UPDATE players,warns SET warns.Active=2, players.Warnings=players.Warnings-warns.Power WHERE (warns.Active=1) AND (warns.TimeEnd <= NOW()) AND (warns.Player=players.Player);但是那给了我:

玩家:

| ID | PLAYER | WARNINGS |
|----|--------|----------|
|  1 |      a |       30 |
|  2 |      b |       40 |
|  3 |      c |       55 |

警告:

| ID | PLAYER | POWER | ACTIVE |       TIMEEND |
|----|--------|-------|--------|---------------|
|  1 |      a |     5 |      2 | 1388051312120 |
|  2 |      a |    10 |      2 | 1388051312120 |
|  3 |      a |    20 |      2 | 1388051312120 |
|  4 |      b |    30 |      2 | 1388051312120 |
|  5 |      b |    40 |      2 | 1388051312120 |
|  6 |      c |    10 |      2 | 1388051312120 |
|  7 |      c |    55 |      2 | 1388051312120 |

因此,只减去每个玩家的第一行...有什么想法可以解决?对不起,我的英语不好!我希望你能理解我 :)

萨哈什·沙(Saharsh Shah)

尝试这个:

UPDATE players P 
INNER JOIN (SELECT W.PLAYER, SUM(W.POWER) WARNING
            FROM WARNS W WHERE W.active = 1 AND W.timeend <= NOW()
            GROUP BY W.PLAYER 
           ) A ON P.PLAYER = A.PLAYER
SET P.WARNINGS = P.WARNINGS - A.WARNING ;

UPDATE WARNS 
SET active = 2
WHERE active = 1 AND timeend <= NOW();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL从一个表中减去第二个表中的某些行的值

来自分类Dev

MySQL左联接:从一个表中选择所有内容,但仅将第二个表中的值与条件匹配

来自分类Dev

MySQL左联接:从一个表中选择所有内容,但仅将第二个表中的值与条件匹配

来自分类Dev

将一个mysql表中的一行连接到第二个表中的多行

来自分类Dev

通过添加第二个表的日期并减去SQL中第一个表的结果,根据第二个表中的值创建表视图

来自分类Dev

从一个表中获取所有列的值,并从第二个表中获取另一列的值

来自分类Dev

当第二个表中的布尔值为TRUE时,用第一个表覆盖第二个表的结果

来自分类Dev

如何从一个表中获取 SQL 值,其中共享值在第二个表中匹配?

来自分类Dev

将子字符串从一个表中的定界值匹配到第二个表中的记录,并建立联接

来自分类Dev

MySQL如何从两个表中选择数据,以便第二个表中的行覆盖第一个表中的行?

来自分类Dev

如何将数据从一个表添加到第二个表中,但仅在匹配的行中添加

来自分类Dev

MySQL从一个表中选择记录,如果它们的ID和用户名没有出现在第二个表中

来自分类Dev

SQL Server:从一个表中获取所有数据,但条件是第二个表列

来自分类Dev

mysql连接表,其中第一个表中的字段作为第二个表中的多个值

来自分类Dev

SQL Oracle-使用存储在第二个表中的值(行)的列名对第一个表中的列中的值求和

来自分类Dev

SQL Oracle-使用存储在第二个表中的值(行)的列名对第一个表中的列中的值求和

来自分类Dev

SQL查询检查第一个表中的列或查找第二个表中的行

来自分类Dev

KDB选择一个表中在第二个表中具有匹配键的行

来自分类Dev

MySQL JOIN 第二个表中的行之一

来自分类Dev

SQL根据第二个表中的值列表从第一个表中选择

来自分类Dev

在表单中,选择第二个表和第一个表

来自分类Dev

SQL 在一个表中查找结果基于第二个表

来自分类Dev

MySQL:使用phpMyAdmin使用一个表中的数据填充第二个表

来自分类Dev

MySQL:使用phpMyAdmin使用一个表中的数据填充第二个表

来自分类Dev

Mysql 按第一个表日期分组并计算第二个表中的不同字段

来自分类Dev

如何在一个表中查找与第二个表共享共同祖先的行

来自分类Dev

如何从表中查找第二个值。

来自分类Dev

第二个表中的查找值

来自分类Dev

英孚 根据第二个表中记录的属性从一个表中选择记录,而第二个表中记录的属性为FK

Related 相关文章

  1. 1

    MySQL从一个表中减去第二个表中的某些行的值

  2. 2

    MySQL左联接:从一个表中选择所有内容,但仅将第二个表中的值与条件匹配

  3. 3

    MySQL左联接:从一个表中选择所有内容,但仅将第二个表中的值与条件匹配

  4. 4

    将一个mysql表中的一行连接到第二个表中的多行

  5. 5

    通过添加第二个表的日期并减去SQL中第一个表的结果,根据第二个表中的值创建表视图

  6. 6

    从一个表中获取所有列的值,并从第二个表中获取另一列的值

  7. 7

    当第二个表中的布尔值为TRUE时,用第一个表覆盖第二个表的结果

  8. 8

    如何从一个表中获取 SQL 值,其中共享值在第二个表中匹配?

  9. 9

    将子字符串从一个表中的定界值匹配到第二个表中的记录,并建立联接

  10. 10

    MySQL如何从两个表中选择数据,以便第二个表中的行覆盖第一个表中的行?

  11. 11

    如何将数据从一个表添加到第二个表中,但仅在匹配的行中添加

  12. 12

    MySQL从一个表中选择记录,如果它们的ID和用户名没有出现在第二个表中

  13. 13

    SQL Server:从一个表中获取所有数据,但条件是第二个表列

  14. 14

    mysql连接表,其中第一个表中的字段作为第二个表中的多个值

  15. 15

    SQL Oracle-使用存储在第二个表中的值(行)的列名对第一个表中的列中的值求和

  16. 16

    SQL Oracle-使用存储在第二个表中的值(行)的列名对第一个表中的列中的值求和

  17. 17

    SQL查询检查第一个表中的列或查找第二个表中的行

  18. 18

    KDB选择一个表中在第二个表中具有匹配键的行

  19. 19

    MySQL JOIN 第二个表中的行之一

  20. 20

    SQL根据第二个表中的值列表从第一个表中选择

  21. 21

    在表单中,选择第二个表和第一个表

  22. 22

    SQL 在一个表中查找结果基于第二个表

  23. 23

    MySQL:使用phpMyAdmin使用一个表中的数据填充第二个表

  24. 24

    MySQL:使用phpMyAdmin使用一个表中的数据填充第二个表

  25. 25

    Mysql 按第一个表日期分组并计算第二个表中的不同字段

  26. 26

    如何在一个表中查找与第二个表共享共同祖先的行

  27. 27

    如何从表中查找第二个值。

  28. 28

    第二个表中的查找值

  29. 29

    英孚 根据第二个表中记录的属性从一个表中选择记录,而第二个表中记录的属性为FK

热门标签

归档