求和前orderby表(购物车)
我想用左连接或者右连接把sum出来的totalprice与tuser合并为一个表再进行查询,但是总是报错
到底要咋做才能把这两个表连起来
左连接时字段不存在才导致报错。
在往下看
和起来就是sql5这个sql语句字段orderby .Totalgprice是未知的,在orderby 表中没有这个字段。
再来扩展说下,你这边的处理是有问题的,像你的订单表里,应该有user的id来做关联查询,比如说在orderby 中加一个uid,你想做的是用户余额减去购物车的金额,那么sql可以这样写:
select tuser.uid,
tuser.uname,
tuser.upsw,
tuser.umoney,
tuser.uscore,
(tuser.umoney -
ifnull((select SUM(orderby.gprice) from orderby where orderby.uid = tuser.id), 0)) as balanceMoney
from tuser
left join orderby on tuser.uid = orderby.uid;
如果只是更新的话,可以这样写
update tuser
set tuser.umoney=tuser.umoney - ifnull((select SUM(orderby.gprice) from orderby where orderby.uid = tuser.id), 0)
where tuser.uid=?;
?为要更新的用户id
这个表结构设计是不是有问题?你怎么确定购物车里的东西是哪个用户的?按总金额匹配?难道就不会有两个人买了同样金额的东西么?
还是说购物车是全局临时表?但你这java应用是跑连接池的,不可能会用上全局临时表啊