两个数据表
学生表
id
stu_id
事务表
id
stu_id
stu_id_2
之前的写法大概是这样的,查询学生表的时候会返回几百条数据,这时执行整个函数就会查询了几百次数据库,想优化下
function 函数 ($学生 ID){
$list = [];
$ret = SELECT * FROM 学生表
foreach ($ret as $item) {
$学生 ID2 = $item['stu_id'];
$结果 = SELECT COUNT(*) FROM 事务表 WHERE stu_id = $学生 ID AND stu_id_2 = $学生 ID2
$list[] = [
'学生 ID' => $学生 ID2,
'结果' => $结果
];
}
return $list;
}
有没有办法写一条 sql 语句实现一次查询满足要求,也就是一次查询返回
| 学生 ID | 结果|
| :--------| --:|
| 123 | 10 |
| 456 | 20 |
| 789 | 30 |
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.