猿问

Laravel 查询生成器上的子查询 Where 条件

我的问题很简单,我是学生,我正在学习 laravel,我不知道如何从子查询中创建 where 条件。

这是查询

 "SELECT id_parameter,value,code_rule,block,grouping,count FROM rule_definition WHERE (code_rule IN (SELECT code_rule FROM rule_definition WHERE id_parameter = 1 AND value = '$x') AND (id_parameter = 1 AND value = '$x')) OR (id_parameter != 1 AND value != '$x')";

我使用 laravel 6.0 查询生成器。


拉风的咖菲猫
浏览 207回答 2
2回答

慕田峪4524236

我认为您不需要该子查询。因为它来自同一张表和相同的条件。$query = DB::table('rule_definition')        ->select('id_parameter, value, code_rule, block,grouping, count')        ->where(function ($q) use ($x) {              $q->where('id_parameter','=',1)               ->where('value','=',$x);         })->orWhere(function ($q) use ($x) {              $q->where('id_parameter','!=',1)               ->where('value','!=',$x);         })

DIEA

$query = DB::table('rule_definition')->where(function ($q){              $q->where('id_parameter','=',1)               ->where('value','=','$x');         })->orWhere(function ($q){              $q->where('id_parameter','!=',1)               ->where('value','!=','$x');         })->select('id_parameter, value, code_rule, block,grouping, count')
随时随地看视频慕课网APP
我要回答