クエリに関連付けられたマルチテーブルのCIフレームワーク

公共 機能 getCollectData($リミット$ページ$ search_user$ search_phone$ orderfield$ ordertype 
    { 
        $この - > DB->を選択し(」a.id、a.mobile、a.is_del、a.register_ip、A .add_time、
        MASTER_IDとしてb.parent_id、
        invite_moneysとしてIFNULL(inv.award、0)、
        brokerage_moneysとしてIFNULL(bro.price、0)、
        IFNULL(sha.read_price、0)share_moneysとして
        IFNULL(sha.counts、0) share_counts、として
        total_moneysとして(IFNULL(inv.award、0)+ IFNULL(bro.price、0)+ IFNULL(sha.read_price、0)) ' )。
        これを$ - > DB->から(自己:: $ table_nameの ''。);
        これを$ - > DB-> 参加( 'ws_invitation bを'、 'a.id = b.user_id'、 ''左)。
        これを$ - > DB-> 参加( '(SELECT SUM(賞)INVなどのuser_id BY ws_invitation_logグループから賞、user_idの)として'、 'a.id = inv.user_id'、 ''左)。
        この$ > DB-> - 参加( '仲間として)のuser_id BY ws_brokerage_log GROUPからの価格、prentice_idとして(SELECT SUM(価格を)'、 'a.id = bro.prentice_id'、 ''左;)
        これを$ - > DB-> に参加(」
        SHAとしてUSER_ID BY ws_share_record群からUSER_ID)」、 'a.id = sha.user_id'、 '左)。
        この$ - > DB->ここで、([ 'is_channel' => 0 ])。

        もし$ search_user ){
             $この - > DB->ここで、([ 'a.id' => $ search_user ])。
        } 
        もし$ search_phone ){
             $この - > DB->のような( 'a.mobile'、$ search_phone、 '両方' )。
        } 
        場合$ orderfield && $ ordertype ){
             $この - > DB-> ORDER_BY($ orderfield''。ordertypeを$ )。
        } {
             $この - > DB-> ORDER_BY( 'a.id DESC' )。
        } 
        この$ > DB-> GROUP_BY( 'a.idを' - ;)
        この$ > DB->リミット( - $リミット$制限が *($ページ - 1 ));
        返す $この - > DB-> GET() - > result_array(); 
    }

おすすめ

転載: www.cnblogs.com/sgm4231/p/12092805.html