Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.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 Laravel5中查询生成器的本机SQL_Php_Sql_Laravel - Fatal编程技术网

Php Laravel5中查询生成器的本机SQL

Php Laravel5中查询生成器的本机SQL,php,sql,laravel,Php,Sql,Laravel,我在Laravel5上有两个表,必须使用查询生成器。我已经得到了它的sql,但我无法将其转换为查询生成器语法。SQL是 SELECT COUNT(A.cid) FROM `A` WHERE A.cid IN (SELECT `id` FROM `B` WHERE `create_user`='$name') AND `access_time` BETWEEN '$start_data' AND '$end_data' 当我使用 DB::table('A') ->joi

我在Laravel5上有两个表,必须使用查询生成器。我已经得到了它的sql,但我无法将其转换为查询生成器语法。SQL是

SELECT COUNT(A.cid)  FROM `A` WHERE A.cid IN (SELECT `id` FROM `B` WHERE `create_user`='$name') AND `access_time` BETWEEN '$start_data' AND '$end_data' 
当我使用

DB::table('A')
        ->join('B', function ($join) {
            $join->on('A.id', '=', 'B.cid');
        })
        ->get();
有些语法是这样的,这是错误的,那么如何才能转换本机SQL呢like “IN”进入查询 建设者 ,谢谢

这是以下语法:

这是的语法:


尝试以下查询并查看结果:

$result= DB::table('a')
            ->select(DB::raw('COUNT(a.cid) as total_cid'))
            ->join('b', 'a.cid', '=', 'b.id')
            ->where('b.create_user', $name)
            ->whereBetween('a.access_time', [$start_data, $end_data])
            ->first();
或者试试这个

$result= DB::table('a')
            ->join('b', 'a.cid', '=', 'b.id')
            ->where('b.create_user', $name)
            ->whereBetween('a.access_time', [$start_data, $end_data])
            ->count();
在您的问题中,您询问了如何在中使用
,对于
中的
,请尝试以下操作:-

$result= DB::table('a')->whereIn('cid', [1,2,3,4]);

尝试以下查询并查看结果:

$result= DB::table('a')
            ->select(DB::raw('COUNT(a.cid) as total_cid'))
            ->join('b', 'a.cid', '=', 'b.id')
            ->where('b.create_user', $name)
            ->whereBetween('a.access_time', [$start_data, $end_data])
            ->first();
或者试试这个

$result= DB::table('a')
            ->join('b', 'a.cid', '=', 'b.id')
            ->where('b.create_user', $name)
            ->whereBetween('a.access_time', [$start_data, $end_data])
            ->count();
在您的问题中,您询问了如何在
中使用
,对于
中的
,请尝试以下操作:-

$result= DB::table('a')->whereIn('cid', [1,2,3,4]);

通常,发布错误消息有助于其他人解决问题;)通常,发布错误消息有助于其他人解决问题;)第二种方法可以得到结果第二种方法可以得到结果