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

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

有沒有辦法從 Laravel 中急切加載的表中選擇字段?

有沒有辦法從 Laravel 中急切加載的表中選擇字段?

PHP
德瑪西亞99 2023-09-22 16:34:10
所以我在下面定義了幾個(gè)關(guān)系表父數(shù)據(jù)庫(kù):public function backorderQuantities(){        return $this->hasMany(BackorderQuantity::class, 'ITEMNMBR', 'ITEMNMBR')->where('SOPTYPE', 5);    }關(guān)系數(shù)據(jù)庫(kù): public function item(){        return $this->belongsTo(Item::class, 'ITEMNMBR', 'ITEMNMBR');    }我這樣稱呼這種關(guān)系:Item::has('backorderQuantities')            ->select('ITEMNMBR',                Item::raw("SUM(QTYONHND) as qty"),                Item::raw("SUM(QTYONORD) as ordered"),                Item::raw("SUM( ( CASE WHEN LOCNCODE LIKE 'IT-%' THEN QTYONHND END ) ) as transit"),             )            ->where('PRIMVNDR', Auth::user()->vendor_id)            ->groupBy('ITEMNMBR')            ->orderBy($group['field'], $group['sort'])        );這工作正常,但我還需要從 backorderQuantities 中選擇字段,以便我可以按所述字段進(jìn)行排序。換句話說(shuō),我想做這樣的事情: Item::has('backorderQuantities')            ->select('ITEMNMBR',                Item::raw("SUM(QTYONHND) as qty"),                Item::raw("SUM(QTYONORD) as ordered"),                Item::raw("SUM( ( CASE WHEN LOCNCODE LIKE 'IT-%' THEN QTYONHND END ) ) as transit"),                'backorderQuantities->QUANTITY'            )            ->where('PRIMVNDR', Auth::user()->vendor_id)            ->groupBy('ITEMNMBR')            ->orderBy('backorderQuantities->QUANTITY', $group['sort'])但我遇到了這樣的錯(cuò)誤:SQLSTATE[42S22]:[Microsoft][SQL Server 的 ODBC 驅(qū)動(dòng)程序 17][SQL Server]列名稱“backorderQuantities”無(wú)效。(SQL: select count(*) 作為聚合 from (select [ITEMNMBR], SUM(QTYONHND) 作為數(shù)量, SUM(QTYONORD) 作為訂購(gòu), SUM( ( CASE WHEN LOCNCODE LIKE 'IT-%' THEN QTYONHND END ) ) 作為中轉(zhuǎn), json_value([backorderQuantities], '$."QUANTITY"') from [IV00102] 存在(從 [SOP10200] 選擇 *,其中 [IV00102].[ITEMNMBR] = [SOP10200].[ITEMNMBR] 且 [SOPTYPE] = 5 ) 和 [PRIMVNDR] = YHI 按 [ITEMNMBR]) 分組為 [aggregate_table])可能是因?yàn)楫?dāng)時(shí)該表仍在急切加載。有什么辦法可以做到這一點(diǎn)嗎?任何幫助將非常感激!
查看完整描述

2 回答

?
米脂

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

您將需要使用join而不是預(yù)先加載。


查看完整回答
反對(duì) 回復(fù) 2023-09-22
?
倚天杖

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

您可以使用with選擇 eger 加載列:

 Item::with('backorderQuantities:QUANTITY,...');

不要忘記將backorderQuantities表的 forigen 鍵傳遞給選定的列

編輯 :

要按子列排序,您應(yīng)該使用 join 語(yǔ)句:

 Item::select('items.*')->leftJoin('items.ITEMNMBR','=','backorderQuantities.ITEMNMBR')->groupBy('backorderQuantities.ITEMNMBR')->orderBy('backorderQuantities.backorderQuantities')


查看完整回答
反對(duì) 回復(fù) 2023-09-22
  • 2 回答
  • 0 關(guān)注
  • 105 瀏覽

添加回答

舉報(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)