代码之家  ›  专栏  ›  技术社区  ›  Dipak

按重复结果分组

  •  1
  • Dipak  · 技术社区  · 7 年前

    我不能用 GROUP BY 在这里,为什么 分组依据 未获取预期结果。

    我不能处理桌子之间的连接 fee fee_tm . 分配时 分组依据 对其中一个来说,一个可以,但另一个可以根据上一个表的总行(id已分组)获取行。我试着分配 group_by 但输出都是双倍的。

    预期产量

    enter image description here

    实际结果

    但这一行是相应地重复的 fee_tm.id 总计行,然后将输出作为

    enter image description here

    数据库结构

    菲特TM

    id  |   ttl |   year
    =====================
    1   |   Jan |   1
    2   |   Feb |   1
    3   |   Mar |   1
    

    费用

    id  |   ttl     |   year
    ========================
    1   |   Annual  |   1
    2   |   Monthly |   1
    

    手续费

    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 ) 
    ) 
    
    0 回复  |  直到 7 年前
    推荐文章