使用多行的UPDATE条件加入MySQL

时间:2013-07-14 12:34:55

标签: mysql

我试图在MySQL中执行UPDATE JOIN查询

我需要执行以下操作:将table_1.won添加到给定会话的table_2.total_winnings

+++ Table_1 +++

--id--  --name--  --selection--  -potential_winnings--   -- won --  --session--
  1       John          a              67                    0           1
  2       Jame          b              10                    **10**      1
  3       David         c              43                    0           1
  4       Sam           b              20                    **20**      1
  5       Alex          b              30                    **30**      1
  6       Rob           b              1000                  0           2


 +++ Table_2 +++  (BEFORE)

--id--   --Total_winnings--   -- session --
  1              4534               1
  2              885                1
  3              0                  1
  4              5                  1
  5              10                 1
  6              5465               2

我想要的输出低于

输入:获胜选择= b         session = 1

 +++ Table_2 +++  (AFTER)

--id--   --Total_winnings--   -- session --
  1              4534               1
  2              **895**            1
  3              0                  1
  4              **25**             1
  5              **40**             1
  6              5465               2

我可以通过选择table_1中赢得的每个用户并在table_2中循环输入来完成此操作,但我现在要处理大量项目,所以我认为我需要一些somesort的连接才能完成此任务。

我目前正在做

UPDATE table_2 SET Total_winnings = Total_winnings + 10 WHERE id = 2 AND session = 1

如果有人知道如何做到这一点,或者有一个简单的SQL连接示例和最有用的UPDATE查询。我已经看到了其他的例子,但我永远无法弄清楚它在SQL中发生了什么!!

1 个答案:

答案 0 :(得分:6)

你在寻找这样的东西吗?

UPDATE table_2
join table_1 on table_1.id = table_2.id
SET Total_winnings = Total_winnings + won
WHERE session = 1 and selection = 'b'