Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中进行sql嵌套/子查询_Php_Laravel - Fatal编程技术网

如何在PHP中进行sql嵌套/子查询

如何在PHP中进行sql嵌套/子查询,php,laravel,Php,Laravel,我正在努力在php代码中实现SQL查询 查询: 选择模板id,mincreated\u at as created\u at from 选择不同的 根目录模板id作为模板id, 创建日期(创建时间), 响应\u id作为响应\u id 从db.score db.score.supplier\u id=db.users.old\u id上的内部连接db.users db.acc.user\u id=db.users.id上的内部连接db.acc 其中db.acc.account_id=25作为T

我正在努力在php代码中实现SQL查询

查询:

选择模板id,mincreated\u at as created\u at from 选择不同的 根目录模板id作为模板id, 创建日期(创建时间), 响应\u id作为响应\u id 从db.score db.score.supplier\u id=db.users.old\u id上的内部连接db.users db.acc.user\u id=db.users.id上的内部连接db.acc 其中db.acc.account_id=25作为T 按模板\u id分组 我只能准备这一部分:

$query=DB::表'score' ->选择raw'DISTINCT root\u template\u id作为模板\u id,date\u created作为创建时间,response\u id' ->加入'users'、'score.supplier_id'、'='、'users.old_id' ->加入'acc','acc.user_id','=','users.id' ->其中'acc.account\u id',$request->id 它可以工作,但是它只负责嵌套部分,如果我可以这样调用它的话,它负责子查询。有人能分享一些想法吗?

DB::table通常以字符串形式接收表名,但它也可以接收闭包或Lightning\Database\Query\Builder实例,因此这应该可以实现Laravel从子查询中选择的技巧:

DB::tablefunction$query使用$request{ $query->selectRaw'DISTINCT root\u template\u id as template\u id,date\u created as created\u at,response\u id' ->从‘得分’ ->加入'users'、'score.supplier_id'、'='、'users.old_id' ->加入'acc','acc.user_id','=','users.id' ->其中'acc.account\u id',$request->id }“T” ->挑选[ “模板id”, DB::rawMINcreated_at AS created_at, ] ->groupBy'template\u id' ->得到;
工作起来很有魅力!非常感谢。但我发现了一些我不清楚的地方,当我想扩展查询时,我又添加了一个名为let say title的参数,直到我将mysql config:mysql.strict=>从true更改为false,我才能够执行查询。错误消息:SELECT列表不在GROUP BY子句中,并且包含未聚合的列&039;id&039;功能上不依赖于GROUP BY子句中的列;这与sql\u mode=only\u full\u group\u by不兼容。您认为可以使用将strict属性的值更改为false吗?@Gocek1这实际上取决于处理生产服务器的人。如果是你,我想没关系。无论如何,您可以调整查询以在不使用此属性的情况下处理该查询。