作业帮 > 综合 > 作业

针对这条语句查表时很慢,怎么才能快一些

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 14:24:25
针对这条语句查表时很慢,怎么才能快一些
$orderdetail['yk']=$db->execute("select sum(tb_moneychange.changemoneynum) as yk from tb_moneychange where tb_moneychange.orderno in (select tb_moneychange.orderno from tb_moneychange where tb_moneychange.id in(select tb_play.tb_moneychangeid from tb_play where tb_play.playtimeID=$orderdetail[playtimeID] and tb_play.userid=".$userid."))")->fields['yk'];
你的数据库是什么数据库?
再问: mysql数据库 最后取得的就是一个值! 有值就慢
再答: 建议不用in查询,用左连接,这样速度会快,可有利于索引使用 你换成这个应该会快点儿[mysql我不熟悉,不知道这么写有没有语法错误],如果把第一层in也去掉,应该更快 select sum(tb_moneychange.changemoneynum) as yk from tb_moneychange where tb_moneychange.orderno in ( select tb_moneychange.orderno from tb_moneychange a inner join tb_play b on tb_moneychange.id=tb_play.tb_moneychangeid where tb_play.playtimeID=$orderdetail[playtimeID] and tb_play.userid=".$userid."))