2017-07-07 140 views
2

如何在用laravel 5.4選擇,laravel 5.4如何寫從多表查詢

編寫SQL查詢來獲取來自多個表中的數據下面的查詢

select l.party_id,l.container_id,p.party_name from 
`tbl_container_lease` l, `tbl_partys` p 
where l.`party_id` = p.`id` and l.`user_id` = 5 

現在使用這個

Containerlease::whereHas('getpartys',function($q){}) 
->where('user_id','=',$user_id) 
->get(); 

但過於混淆使用

有沒有更好的備選方案T o通過使用模型使用此查詢..

+0

',函數($ q){}'可以被刪除。 – apokryfos

回答

3

您將不得不加入表執行此操作。

Containerlease::join('tbl_partys', 'tbl_partys.id', '=', 'tbl_container_lease.party_id') 
    ->where('tbl_container_lease.user_id', 5) 
    ->select('tbl_partys.*', 'tbl_container_lease.*'); 
    ->get(); 

但是,如果您使用Eloquent,則更好的方法是創建關係。這裏的文檔可以在這裏找到:https://laravel.com/docs/5.4/eloquent-relationships

0

這會更好,因爲你畢竟在拉拉維爾,利用laravel關係。

確保你有一個政黨的模式:

php artisan make:model Party 

假設一個租約有一方,在您的集裝箱租賃模型添加:

public function party(){ 
    return $this->hasOne('App\Party', 'id', 'party_id'); 
} 

然後訪問你的模型

ContainerLease::with('party')->where('user_id', '=', 5)->get();