-->

科技资讯

您的当前位置:首页 > 资讯 > postgresql

select查询算法优化

2018-09-27 13:37:08  来源:admin 点击:696

1.如果我们遇到了循环更新的问题

2.表结构如下,假设数学、英语、化学、语文得重其他表中查询获得!!

数学英语化学语文
name1



name2



name3



3.这样需要我们重其他数据表中查出name1的数学成绩、英语成绩、化学成绩、语文成绩更新到这个表中,name2同理,name3也一样

4.第一种方法,我们可以先把name这一列循环一遍,看都有哪些人,之后再把这个人的各科成绩查询出来,update到这个表中,

foreach ($peopleid as $v) {
查询出这个人对应的各科成绩
   $test_people = DB::table('people')
       ->update([
           '科目' => 各科成绩,
           'name' => $v,
       ]);
}

这样有多少个人我们就得更新多少次,如果数据量增大,导致系统崩溃

5,我们也可以一次性更新

$RiverCountAndriverkm = DB::select("UPDATE people set 语文= b.语文,数学= b.数学 FROM 
(select name, SUM(语文) as 语文,count(*) as 数学 from 表其他 where
status = 1 group by name) b where people.
name= b.name and 其他条件
);

如果遇到多个可以多次更新,但速度只是一条sql的速度,和多少人没有关系,效率会大大提高


orderBy 和groupBy一起存在的时候怎么查询

SELECT D from D表 where id in(SELECT A from A表 where B = 1111 GROUP BY A) ORDER BY rank,

SELECT a.monitoringtype,b.count from A表 as a ,(SELECT partstype as name,"count"(partstype) as count from B表 where manageaid = 1111 GROUP BY partstype) as b where a.id = b.name ORDER BY a.mrank

相关文章更多 >

© 2024版权所有 水水网

电话:171780793