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

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

Laravel Eloquent - 按每種類(lèi)型選擇最大的 - join、max()

Laravel Eloquent - 按每種類(lèi)型選擇最大的 - join、max()

PHP
UYOU 2022-10-14 16:29:45
我還在學(xué)習(xí)laravel和雄辯,我有一個(gè)小問(wèn)題......我有三個(gè)表:Schema::create('fishes', function (Blueprint $table) {                $table->bigIncrements('id');                $table->bigInteger('user_id')->unsigned();                $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');                $table->bigInteger('type_id')->unsigned();                $table->foreign('type_id')->references('id')->on('fish_types')->onDelete('cascade');                $table->float('length');});Schema::create('fish_types', function (Blueprint $table) {                $table->bigIncrements('id');                $table->string('name')->unique();                $table->string('name_raw')->unique();});Schema::create('photos', function (Blueprint $table) {                $table->bigIncrements('id');                $table->string('photoable_type');                $table->string('photoable_id');                $table->string('path');});我有模型魚(yú)以及與魚(yú)類(lèi)型和照片的關(guān)系。它的工作,一切都很好,例如:$f = Fish::with('photos', 'fishery', 'type')->when($filters['userId'], function ($query) use ($filters) {    return $query->where('user_id', $filters['userId']);});但我想從 db 獲得屬于用戶(hù)的每種類(lèi)型中最長(zhǎng)的魚(yú),當(dāng)然還有照片(急切加載)。我有 mysql 問(wèn)題(是的,這很糟糕,但我加入 eloquent 沒(méi)有用:():$sql = "SELECT id  FROM fishes f1  JOIN      ( SELECT type_id            , MAX(`length`) AS pb          FROM fishes          where user_id = 6          GROUP BY type_id     ) AS f2    ON f1.type_id = f2.type_id    and f2.pb = f1.length  where f1.user_id = 6";所以我有魚(yú)的身份證 - 但下一步是什么?相同的查詢(xún)“whereIn(Column_name, Array)”?$sth = DB::getPdo()->prepare($sql);$sth->execute();$quy = $sth->fetchAll(\PDO::FETCH_COLUMN, 0);$f = Fish::with('photos', 'fishery', 'type')          ->where('user_id', 6)          ->whereIn('id', $quy)->get();縮短的魚(yú)模型:class Fish extends Model{    public function type()    {        return $this->belongsTo('App\Models\FishType');    }    public function fishery()    {        return $this->belongsTo('App\Models\Fishery');    }
查看完整描述

1 回答

?
元芳怎么了

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

您正在執(zhí)行兩個(gè)查詢(xún),但這可以在一個(gè)查詢(xún)中完成。嘗試這個(gè)


Fish::with('photos', 'fishery', 'type')

    ->join(DB::raw('( SELECT type_id

            , MAX(`length`) AS pb

          FROM fishes

          where user_id = 6

          GROUP BY type_id

     ) AS f2'),function($join){

    $join->on('fishes.type_id','=','f2.type_id')

         ->on('fishes.length','=','f2.pb');

    })

    ->where('user_id', 6)->get();

代替


$sql = "

SELECT id

  FROM fishes f1

  JOIN **strong text**

     ( SELECT type_id

            , MAX(`length`) AS pb

          FROM fishes

          where user_id = 6

          GROUP BY type_id

     ) AS f2

    ON f1.type_id = f2.type_id 

   and f2.pb = f1.length 

 where f1.user_id = 6

";


$sth = DB::getPdo()->prepare($sql);

$sth->execute();

$quy = $sth->fetchAll(\PDO::FETCH_COLUMN, 0);

$f = Fish::with('photos', 'fishery', 'type')

          ->where('user_id', 6)

          ->whereIn('id', $quy)->get();


查看完整回答
反對(duì) 回復(fù) 2022-10-14
  • 1 回答
  • 0 關(guān)注
  • 161 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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