連表查詢如何使用getLastSql()
阿新 • • 發佈:2018-12-01
在模型操作中 ,為了更好的查明錯誤,經常需要檢視下最近使用的SQL語句,我們可以用getLastSql()方法來輸出上次執行的sql語句。例如:
單表查詢時:
M("User") ->where("user_id=1") ->field("nick") ->select();
//使用方法如下
print_r(M("User") ->getLastSql());
//列印結果如下:
SELECT `nick` FROM `hs_user` WHERE ( user_id=1 );
連表查詢時:
$Customer_info = M("crm_customer as c") ->join("LEFT JOIN hs_user as u ON u.user_id=c.uid") ->field('c.cus_name,u.nick') ->group('c.cid') ->where('u.user_id=1') ->order("c.f_remind_time desc,c.follow_time desc") ->limit($Curr_page,$Limit) ->select(); //使用方法如下: print_r(M("crm_customer as c") ->join("LEFT JOIN hs_user as u ON u.user_id=c.uid") ->field('c.cus_name,u.nick') ->group('c.cid') ->where('u.user_id=1') ->where($Map) ->order("c.f_remind_time desc,c.follow_time desc") ->limit($Curr_page,$Limit) ->getLastSql()); //列印結果如下: SELECT c.cus_name,u.nick FROM hs_crm_customer as c LEFT JOIN hs_user as u ON u.user_id=c.uid WHERE ( u.user_id=1 ) GROUP BY c.cid ORDER BY c.f_remind_time desc,c.follow_time desc LIMIT 0,10;
注意:Mongo資料庫驅動由於介面的特殊性,不存在執行SQL的概念,因此SQL日誌記錄功能是額外封裝實現的,所以出於效能考慮,只有在開啟除錯模式的時候才支援使用方getLastSql()法獲取最後執行的SQL記錄。