2016-07-30 36 views
3

我有两个更新查询,我想使他们中的一个,但我不知道如何?我已经通过一些其他的例子在Stack Overflow上看过,但我无法让它工作。sql make 2更新查询1

你能帮我吗?

查询1:

UPDATE exercise_list SET ex1 = ex2ex2 = ex3ex4 = NULL WHERE day_ID = 1 AND user_ID = 4

查询2:

UPDATE training_results SET ex1 = ex2ex2 = ex3ex4 = NULL WHERE day_ID = 1 AND user_ID = 4

UPDATE: 感谢所有的awnsers!我已经接受了第一awnser

+0

[MySQL和更新多个表用一个查询](可能的重复http://stackoverflow.com/questions/4361774/mysql-update-multiple-tables-with-one - 查询) –

回答

1

有实现这一目标的方式有两种:

  1. 使用单一mySqlQuery通话,只需按以下方式调用mySqlQuery函数:

    mySqlQuery(UPDATE exercise_list SET ex1= ex2, ex2= ex3,ex4 = NULL WHERE 
    day_ID= 1 AND user_ID= 4; 
    UPDATE training_results SET ex1= ex2, ex2= ex3,ex4 = NULL WHERE 
    day_ID= 1 AND user_ID= 4;) 
    
  2. 方法2:

    UPDATE exercise_list e_l ,training_results t_r SET 
    e_l.ex1=e_l.ex2, e_l.ex2=e_l.ex3,e_l.ex4=NULL, 
    t_r.ex1=t_r.ex2, t_r.ex2=t_r.ex3,t_r.ex4=NULL 
    WHERE e_l.day_ID = 1 AND e_l.user_ID = 4 AND 
    t_r.day_ID = 1 AND t_r.user_ID = 4; 
    

希望它能帮助。

+0

谢谢你的工作!我已经使用你的第二种方法。 –

0

可能是内部连接的两个表

UPDATE exercise_list as a 
INNER JOIN training_results as b ON (a.day_ID = b.day_ID AND a.user_ID = b.user_ID) 
SET ex1= ex2, 
    ex2= ex3, 
    ex4 = NULL 
WHERE a.user_ID=4 
AND a.day_ID = 1 
0
UPDATE A 
SET A.ex1 = A.ex2 
, B.ex1 = B.ex2 
, A.ex2 = A.ex3 
, B.ex2 = B.ex3 
, A.ex4 = NULL 
, B.ex4 = NULL 
FROM exercise_list A 
JOIN training results B on A.ID = B.ID 
WHERE A.day_id = 1 and A.user_id = 4 
0

这大概:

UPDATE exercise_list as el, training_results as tr SET 
el.ex1=el.ex2,el.ex2=el.ex3, el.ex4=NULL, tr.ex1=tr.ex2, tr.ex2=tr.ex3, tr.ex4=NULL 
WHERE el.day_ID = 1 AND el.user_ID = 4 AND tr.day_ID = 1 AND tr.user_ID = 4;