thinkphp5.0.23升級之後sql join別名報錯問題解決
阿新 • • 發佈:2018-12-29
問題原因:很早之前寫過的程式碼,一直正常,前端時間因為漏洞升級了tp版本,發現相容問題
->join('jianjie_task_list_tg_log as b','a.id = b.tg_id','LEFT') 報錯
提示我找不到表b
原始程式碼
$results = Db::table('jianjie_task_list_tg') ->alias('a') ->join('jianjie_task_list_tg_log as b','a.id = b.tg_id','LEFT') ->field('a.id as id, channel_name, b.update_time as update_time') ->where($map)->order('b.id','desc')->group('b.tg_id') ->select();
修復後代碼
$alias=['jianjie_task_list_tg'=>'a','jianjie_task_list_tg_log'=>'b']; $results = Db::table('jianjie_task_list_tg') ->alias($alias) ->join('jianjie_task_list_tg_log','a.id = b.tg_id','LEFT') ->field('a.id as id, channel_name, b.update_time as update_time') ->where($map)->order('b.id','desc')->group('b.tg_id') ->select();
就相當於把別名在alias裡定義好。
影響原因傳入條件map:
Array ( [b.update_time] => Array ( [0] => between time [1] => Array ( [0] => 2018-12-18 [1] => 2018-12-19 ) ) )
知識點:列印sql方法,select(false) echo $results