第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Laravel連表查詢,一個(gè)rid對(duì)應(yīng)多條數(shù)據(jù),但只需要一條數(shù)據(jù),如何優(yōu)化?

Laravel連表查詢,一個(gè)rid對(duì)應(yīng)多條數(shù)據(jù),但只需要一條數(shù)據(jù),如何優(yōu)化?

PHP
狐的傳說 2019-03-18 18:05:41
有A,B,C三張表,A、B表每一個(gè)rid對(duì)應(yīng)一條數(shù)據(jù),C表一個(gè)rid對(duì)應(yīng)多條數(shù)據(jù),三張表通過rid相關(guān)聯(lián),現(xiàn)在需求是,根據(jù)rid取出A、B表中數(shù)據(jù),C表中只需要取出該rid對(duì)應(yīng)多條數(shù)據(jù)的第一條。 想到的方法是,AB表join,取出符合要求的rid,然后對(duì)遍歷每個(gè)rid,再去C表中取數(shù)據(jù),并拿到第一條,大概是這個(gè)樣子 // Laravel $result = DB::table('A') ->join('B', DB::raw('A.rid'), '=', DB::raw('B.rid') ->where('condition', '=', 'somecondition') ->get(array(DB::raw(A.rid))); $rows = array(); foreach ($result as $r) { $c = DB::table('C')->where('rid', '=', $r['rid'])->first(); $rows[] = array( 'rid' => $c['rid'], 'key' => $c['value'] ); } return $rows; 現(xiàn)在的做法雖然能實(shí)現(xiàn)功能,但耗時(shí)太長(zhǎng)了,請(qǐng)教下有什么優(yōu)化方案嗎?本來想讀取C表時(shí)用whereIn,但取出來還要在篩選多余數(shù)據(jù),不知道這種方法是不是比較好的實(shí)踐方法?
查看完整描述

4 回答

?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊

  • 首先wherein后去篩選數(shù)據(jù),肯定比你在循環(huán)查c表快吧。。
  • 然后join('B', 'A.rid', '=', 'B.rid')不需要DB::raw
查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

同樣的需求

    /**
     * 所有日志
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
     */
    public function hasLogs ()
    {
        return $this->hasMany( LeadLog::class, 'leads_id', 'id' )
            ->orderBy('track_at', 'desc');
    }

    /**
     * 最新一條日志
     * @return \Illuminate\Database\Eloquent\Relations\HasOne
     */
    public function lastLog ()
    {
        return $this->hasOne(LeadLog::class, 'leads_id', 'id')
            ->select('id', 'leads_id','content', 'track_at')
            ->orderByDesc('id')
            ->groupBy('leads_id','id', 'track_at', 'content');
    }
查看完整回答
反對(duì) 回復(fù) 2019-03-18
  • 4 回答
  • 0 關(guān)注
  • 1770 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)