无法在一个查询中更新两个表

时间:2015-05-19 17:00:29

标签: mysql

我有两个查询要更新两个表:

第一张表

UPDATE user_info SET `location` = ".$locationid.", `looking_for` = ".$lookingfor." WHERE `user_info`.`user_id` =  ".$infoid."; 

第二张表

UPDATE user_personality SET `personality` = '".$changedescription."' WHERE `user_personality`.`user_info_id` =  ".$infoid.";

我尝试使用相同的语句合并这两个查询。

UPDATE user_info, user_personality
SET user_info.location = ".$locationid.", user_info.`looking_for` = ".$lookingfor.", user_personality.personality = '".$changedescription."'
WHERE  `user_info`.`user_id` =  ".$infoid."
AND `user_personality`.`user_info_id` =  ".$infoid."

我没有收到任何错误消息,但没有更新。

我做错了什么?

感谢。

2 个答案:

答案 0 :(得分:0)

只是一个猜测......

"
UPDATE user_info i
  JOIN user_personality p
    ON p.user_info_id = i.user_id
   SET i.location = $locationid
     , i.looking_for =  '$lookingfor'
     , p.personality = '$changedescription'
 WHERE i.user_id = $infoid;
";

答案 1 :(得分:0)

如果你在where子句中将2个表字段设置为彼此它应该有效,那么我相信你会将你的where子句改为:

popt, pcov = curve_fit(f,x,y)

MySQL肯定支持更新多个表,因此适用于多表select语句的where子句也适用于更新。