2015-10-19 36 views
1

我正在尋找執行下面查詢的最佳方法,作爲Laravel 4.2查詢。我在where條款中掙扎,該條款有一個子查詢工作。Laravel查詢子查詢的位置

我的查詢正在做: 我有一個父表1-many子表。我只想知道與當前的子記錄相關的所有與父記錄相關聯的子記錄的列表。

select child.id, child.jobNumber 
from child 
where child.parentId = (select child.parentId from child where child.id = 2) 
order by child.jobNumber, child.id 

喜歡的東西:

$query = DB::table('child'); 
$query->select(array('child.id','child.jobNumber')); 
$query->orderBy('child.jobNumber'); 
$query->orderBy('child.id'); 

// how do I do my where clause? 

$list = $query->get(); 
+0

您使用雄辯嗎? – Tim

+0

我是,但爲此,我寧願只做一個查詢。 – user3720435

+0

這將有助於http://stackoverflow.com/questions/27064678/laravel-eloquent-subquery –

回答

0

有關使用whereRaw什麼? http://laravel.com/docs/4.2/queries#advanced-wheres

$query = DB::table('child'); 
$query->select(array('child.id','child.jobNumber')); 
$query->whereRaw('child.parentId = (select child.parentId from child where child.id = 2)'); 
$query->orderBy('child.jobNumber'); 
$query->orderBy('child.id'); 

// how do I do my where clause? 

$list = $query->get();