我不能用 GROUP BY
就在这里,为什么 GROUP BY
未获取预期结果。
我无法处理表之间的连接 fee
以及 fee_tm
. 分配时 GROUP BY
对于一个表,一个就可以了,但是另一个表的行是根据上一个表的总行(该id已分组)获取的。我试过分配 group_by
但输出都是行的两倍。
预期产量
实际结果
但这一行相应地重复 fee_tm.id
总计行,则输出作为
数据库结构
费用
id | ttl | year
=====================
1 | Jan | 1
2 | Feb | 1
3 | Mar | 1
费用
id | ttl | year
========================
1 | Annual | 1
2 | Monthly | 1
cls\U费用
id | cls_id | sec_id | fee_id | fee
================================================
1 | 1 | 1 | 1 | 1000
2 | 1 | 1 | 2 | 560
学生
id | ttl | cls | sec | year
====================================
1 | John| 1 | 1 | 1
2 | Riya| 1 | 1 | 1
mysql数据库
$result=$con->prepare("
SELECT
fee_tm.ttl AS f_tm,
cls_fee.fee AS f_mnt,
fee.ttl AS f_ttl
FROM
student
LEFT JOIN
fee_tm ON fee_tm.year = student.year
JOIN
cls_fee ON cls_fee.sec_id = student.sec AND cls_fee.cls_id = student.cls
LEFT JOIN
fee ON fee.id = cls_fee.fee_id
WHERE
student.id =:stdt
GROUP BY
fee_tm.id";
$results=array();
while($row=$result->fetch(PDO::FETCH_ASSOC)){
$results[]=$row;
echo"
<input type='checkbox' name='f_id' /'>".$row['f_tm'];
} echo "<br/>
<table>";
foreach($results as $row1){
echo"
<tr>
<td>".$row1['f_ttl']."</td>
<td>".$row1['f_mnt']."</td>
</tr>";
} echo "</table>";
的结果 print_r($result->fetchAll(PDO::FETCH_ASSOC))
:
Array (
[0] => Array ( [fee] => Feb [f_mnt] => 1000 [f_ttl] => Annual Fee )
[1] => Array ( [fee] => Mar [f_mnt] => 1000 [f_ttl] => Annual Fee )
)
暂无答案!
目前还没有任何答案,快来回答吧!