RockyLou Posted May 8, 2007 Share Posted May 8, 2007 I'm doing this update statement here: mysql_query("UPDATE hr_user as u, hr_building as b SET u.xp=u.xp + b.land + $char_xp WHERE u.userid=b.userid"); The way I get $char_xp is by a loop for the users and I want to eliminate using loops. Is there a way I can use a subquerie to retreive the value? Note: there can be more than 1 field in the other table mysql_query("UPDATE hr_user as u, hr_building as b SET u.xp=u.xp + b.land + (select sum(m.xp) from hr_military as m) WHERE u.userid=b.userid AND u.userid=m.userid"); I need something like that, any ideas? Link to comment https://forums.phpfreaks.com/topic/50558-update-with-subquerie-help/ Share on other sites More sharing options...
fenway Posted May 8, 2007 Share Posted May 8, 2007 Sounds like you need a where clause in that subquery, no? Link to comment https://forums.phpfreaks.com/topic/50558-update-with-subquerie-help/#findComment-248502 Share on other sites More sharing options...
RockyLou Posted May 8, 2007 Author Share Posted May 8, 2007 yeah but would it work with the parent query ? mysql_query("UPDATE hr_user as u, hr_building as b SET u.xp=u.xp + b.land + (select sum(m.xp) from hr_military as m WHERE m.userid=u.userid) WHERE u.userid=b.userid AND u.userid=m.userid"); Link to comment https://forums.phpfreaks.com/topic/50558-update-with-subquerie-help/#findComment-248518 Share on other sites More sharing options...
fenway Posted May 9, 2007 Share Posted May 9, 2007 Should be just fine... Link to comment https://forums.phpfreaks.com/topic/50558-update-with-subquerie-help/#findComment-249108 Share on other sites More sharing options...
RockyLou Posted May 10, 2007 Author Share Posted May 10, 2007 I donno for some reason it wont work..having problems with the subquerie Link to comment https://forums.phpfreaks.com/topic/50558-update-with-subquerie-help/#findComment-249483 Share on other sites More sharing options...
bubblegum.anarchy Posted May 10, 2007 Share Posted May 10, 2007 what is the final `AND u.userid=m.userid` all about? written differently: UPDATE hr_user INNER JOIN hr_building ON hr_user.user_id = hr_building.userid SET hr_user.xp = hr_user.xp + hr_building.land + ( SELECT sum(hr_military.xp) FROM hr_military WHERE hr_military.userid = hr_user.user_id ) Link to comment https://forums.phpfreaks.com/topic/50558-update-with-subquerie-help/#findComment-249557 Share on other sites More sharing options...
RockyLou Posted May 11, 2007 Author Share Posted May 11, 2007 Yeah the subquerie still doesn't work. I don't really understand why though, really weird. I checked all the names on the db to verify and they match. Link to comment https://forums.phpfreaks.com/topic/50558-update-with-subquerie-help/#findComment-250560 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.