两个数据表
学生表
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 |