2015-11-10 96 views
0

條款我有這樣的查詢工作,但是使用where()時什麼也沒有。Laravel查詢生成器不與其中子查詢

我確定有記錄時field1 = 1。如果我使用$q->toSQL()最後SQL是:

select * from (select * from table1 where field1 = ?) AS rs 

當我將此SQL粘貼到phpMyAdmin則返回1個記錄。所以看起來,查詢生成器導致這個問題。

回答

0

自己找到了!我應該用:

$q1 = Table1Model()::select()->where('field1', 1); 

$q2 = \DB::table(\DB::raw('('. 
    $q1->toSQL() 
.') AS rs')) 
->mergeBindings($q1->getQuery());