JJpZh 2021-07-31 09:37 采纳率: 75%
浏览 82
已结题

用tp6写的sql语句好像出bug了

 $data = Db::table("exam_situation")
                    ->alias("es")
                    ->join("exam_plan ep", "ep.ep_id=" . $posts["ep_id"])//exam_plan.ep_id==form传过来选择的ep_id
                    ->join("student stu", "stu.stu_num=es.usernum")//exam_situation.usernum==student.stu_num
                    ->field("title,study_year,semester,in_year,major,classname,stu_num,name,grade")
                    ->where([

                        ["es.grade", $char, $grade_num],
                        ["es.ep_id", "=", $posts["ep_id"]],//exam_situation.ep_id==form传过来选择的ep_id
                        ["es.ac_id", "=", session("ac_id")]
                    ])
                    ->fetchSql(true)
                    ->select();
                echo $data;

输出的语句是:

SELECT `title`,`study_year`,`semester`,`in_year`,`major`,`classname`,`stu_num`,`name`,`grade` 
FROM `exam_situation` `es` INNER JOIN `exam_plan` `ep` ON `ep`.`ep_id`=`28`
 INNER JOIN `student` `stu` ON `stu`.`stu_num`=`es`.`usernum`
 WHERE `es`.`grade` <= '59' AND `es`.`ep_id` = '28' AND `es`.`ac_id` = '9'

注意看第一个28那里是反引号,就很奇怪,导致数据库也查不出来。谁能帮我回答一下为什么

  • 写回答

2条回答 默认 最新

  • 没事干写博客玩 2021-08-02 07:19
    关注

    因为join on是用来做关联的,按理说左右都应该是表名.字段名,tp会帮你加上反引号来避免关键字或保留字出现的错误,你那个条件应该写在where里而不是on里

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月10日
  • 已采纳回答 8月2日
  • 创建了问题 7月31日

悬赏问题

  • ¥15 VS2022 C++的相关代码问题咨询
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码