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

用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日

悬赏问题

  • ¥65 LineageOs-21.0系统编译问题
  • ¥30 关于#c++#的问题,请各位专家解答!
  • ¥15 App的会员连续扣费
  • ¥15 不同数据类型的特征融合应该怎么做
  • ¥15 用proteus软件设计一个基于8086微处理器的简易温度计
  • ¥15 用联想小新14Pro
  • ¥15 multisim中关于74ls192n和DSWPK开关仿真图分析(减法计数器)
  • ¥15 w3wp,exe 中发生未处理的 Microsoft ,NETFramework 异常。
  • ¥20 C51单片机程序及仿真(加减器)
  • ¥15 AQWA | 水动力分析 二阶波浪力