首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在一个查询中更新两个表

问不能在一个查询中更新两个表
EN

Stack Overflow用户
提问于 2015-05-19 17:00:29
回答 2查看 37关注 0票数 0

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

第一表

代码语言:javascript
复制
UPDATE user_info SET `location` = ".$locationid.", `looking_for` = ".$lookingfor." WHERE `user_info`.`user_id` =  ".$infoid."; 

第二表

代码语言:javascript
复制
UPDATE user_personality SET `personality` = '".$changedescription."' WHERE `user_personality`.`user_info_id` =  ".$infoid.";

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

代码语言:javascript
复制
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."

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

我做错了什么?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-19 17:06:58

只是猜猜..。

代码语言:javascript
复制
"
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;
";
票数 0
EN

Stack Overflow用户

发布于 2015-05-19 17:12:01

如果在where子句中将两个表字段设置为相等,则应该工作,因此我相信您会将where子句更改为:

代码语言:javascript
复制
WHERE  `user_info`.`user_id` = `user_personality`.`user_info_id`
AND `user_info`.`user_id` =  ".$infoid."

MySQL绝对支持更新多个表,所以对多个表select语句起作用的where子句也应该适用于更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30331776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档