You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL多表查询返回多余重复行 获取匹配ID正确结果的修复方案

问题根因

你写的SQL属于无关联条件的隐式交叉连接,会触发笛卡尔积计算:reclamation表中满足status_recla = 'En attendant' AND id_ens IS NULL的每一行,都会和etudiant表的每一行强行拼接返回。你库中符合条件的申诉记录共1条,学生表共3条记录,自然会返回3条拼接后的冗余结果,和你遇到的现象完全一致。

修复方案

核心是给两张表加关联匹配条件,同时顺手修复代码里的小问题:

  • 弃用逗号分隔表的隐式连接写法,改用INNER JOIN显式关联,通过两表共有的学生ID字段做匹配(常规设计下申诉表reclamation会存id_etud字段关联学生表主键)
  • 不要用SELECT *查全字段,只取实际用到的字段,避免两表同名字段(比如id字段)互相覆盖导致取值错误
  • 删掉输出日期单元格时多写的一个</td>闭合标签,避免HTML结构错乱
修正后完整代码
$sql = "SELECT 
            r.id_recla,
            r.date_recla,
            r.Titre_recla,
            r.desc_recla,
            e.nom_etud,
            e.prenom_etud
        FROM reclamation r
        INNER JOIN etudiant e 
            ON r.id_etud = e.id_etud
        WHERE r.status_recla = 'En attendant' 
          AND r.id_ens IS NULL";
$query = mysqli_query($conn,$sql);
if($query){
    if (mysqli_num_rows($query) != 0 ){
        while($row = mysqli_fetch_assoc($query)){
            echo "<tr>";
            echo "<td style='width: 150px;'>".$row['nom_etud']." ".$row['prenom_etud']."</td>";
            // 修复了此处多余的</td>闭合标签
            echo "<td style='width: 150px;'>".$row['date_recla']."</td>";
            echo "<td style='width: 150px;'>".$row['Titre_recla']."</td>";
            echo "<td style='width: 150px;'>".$row['desc_recla']."</td>";
            echo "<td class='text-center align-middle' style='max-height: 60px;height: 60px;'><a class='btn btn-primary' type='button' style='background-color: limegreen;margin-right: 20px;' href='edit.php?accepteRecla=".$row['id_recla']."&idchef=".$id."'>Accepter</a><a class='btn btn-primary' type='button' style='background-color: var(--bs-red);' href='edit.php?refuseRecla=".$row['id_recla']."&idchef=".$id."'>Refuser</a></td>";
            echo "</tr>";
        }
    }
}
else{
    echo mysqli_error($conn);
}
?>

注意:如果你实际表结构里的关联字段名不是id_etud,只需要把ON r.id_etud = e.id_etud中的字段名替换为你实际使用的外键字段即可。

参考截图
  • 数据库表结构参考:
    SQL表结构
  • 错误查询返回结果参考:
    查询结果展示

内容的提问来源于stack exchange,提问作者Mohamed Kanich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:18:22