mysql
2015-05-19 66 views 0 likes 
0

我有两个查询,以更新两个表更新两个表:不能在一个查询

首先表

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." 

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

我在做什么错?

谢谢。

+1

我建议使用'JOIN'语法,而不是表列表。 – Uueerdo

+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; 
"; 
0

如果设置等于where子句它应该工作在对方 2表中的字段,所以我相信你会改变你的where子句:

WHERE `user_info`.`user_id` = `user_personality`.`user_info_id` 
AND `user_info`.`user_id` = ".$infoid." 

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

相关问题