亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

左聯接并僅使用 LARAVEL 6.5.0 從右表中返回最新記錄

左聯接并僅使用 LARAVEL 6.5.0 從右表中返回最新記錄

PHP
眼眸繁星 2022-09-12 10:14:22
Table 1----------NameID     Name------------------1           A2           B3           C-----------------Table 2--------------------ID   NameID   Order   --------------------1      1      Sugar2      1      Salt 3      2      Garlic 4      2      Sugar5      2      Onion6      3      Oil7      3      Black pepper 我只想從右表中返回最新的,每個nameID只有一條記錄,我不知道要使用什么代碼這是我想返回的結果RESULT----------------------------Name           Order---------------------------A              Salt  B              Onion    C              Black pepper控制器.phpreturn DB::table('table1')->leftjoin('table2','table1.nameID','=','table2.nameID')-get();
查看完整描述

3 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

試試這個


$data = Table1::select('Table1.Name', 'Table2.Order','Table2.ID')

->leftJoin('Table2', function($query) {

   $query->on('Table1.NameID','=','Table2.NameID')

        ->whereRaw('Table2.ID IN (select MAX(a2.ID) from Table2 as a2 join Table1 as u2 on u2.NameID = a2.NameID group by u2.NameID)');

})->get();

編輯:


$data = Table1::select('Table1.Name', 'Table2.Order','Table2.ID')


查看完整回答
反對 回復 2022-09-12
?
森林海

TA貢獻2011條經驗 獲得超2個贊

使用不存在來篩選


select Name, Order


from Table1 a 

inner join

(

Select a.NameID, Order from Table2 a 

where not exists(select 1 from Table2 b where a.NameID  = b.NameID  and a.ID < b.ID)

)b on a.NameID = b.NameID


查看完整回答
反對 回復 2022-09-12
?
米脂

TA貢獻1836條經驗 獲得超3個贊

您可以嘗試下面的腳本 -


SELECT B.NameID, B.Name, C.[Order]

FROM 

(

    SELECT Nameid,MAX(ID) ID

    FROM table_2

    GROUP BY NameID

)A

INNER JOIN Table_1 B ON A.NameID = B.NameID

INNER JOIN Table_2 C ON A.NameID = C.NameID AND A.ID = C.ID 


查看完整回答
反對 回復 2022-09-12
  • 3 回答
  • 0 關注
  • 133 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號