2017-04-22 91 views
0

我试图让从几小时此查询,但我不能让这个查询在laravel语法Laravel 5.1嵌套复杂的查询

\DB::select(\DB::raw(
" 
SELECT * FROM products AS P WHERE (`d` = $d) 
      AND (`mis` BETWEEN $min_c AND $max_c) 
      AND (`e` BETWEEN $e_min AND $e_max) 
      AND p1 IN 
          (
          SELECT p1 
          FROM autos AS A 
          WHERE (`ma` = $strma) 
          AND (`d` = $d) 
          AND (`mis` BETWEEN $min_c AND $max_c) 
          AND (`e` BETWEEN $e_min AND $e_max) 
          AND (`p1` = P.p1) 
          AND (`p2` = P.p2) 
          ) 
      AND p2 IN 
          (
          SELECT p2 
          FROM autos AS A 
          WHERE (`ma` = $strma) 
          AND (`d` = $d) 
          AND (`mis` BETWEEN $min_c AND $max_c) 
          AND (`e` BETWEEN $e_min AND $e_max) 
          AND (`p1` = P.p1) 
          AND (`p2` = P.p2) 
          ) 
"    
)); 

我想我必须使用2种功能,如

->whereIn(array('p1','p2'), 
function($query){ 

... 
} 
function($query2){ 
... 
} 
) 

但它没有工作 以什么方式可以问这个数据库在laravel语法?

+1

会发生什么?你的问题在Mysql或Laravel上?您是否直接在MySql更直接的界面上尝试查询?这是非常不清楚你的问题是什么! – sergiol

回答

0

我解决了它在2中的功能。

->whereIn('p1',function($query) use (... 
->whereIn('p2',function($query2) use (...