2015-10-19 79 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();