我在Laravel 5上有两个表,必须使用查询生成器。我已经有了它的sql但我无法将其转换为Query Builder语法。 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();
这样的一些语法,这是错误的,所以我怎样才能将像“IN”这样的原生SQL变成查询生成器,谢谢
答案 0 :(得分:0)
这是joins in Laravel 5.2的语法:
$result= DB::table('a')
->join('b', 'a.id', '=', 'b.cid')
->select('a.cid')
->where('A.cid', 'like', '%string%') //optional like
->get();
答案 1 :(得分:0)
尝试以下查询并查看结果:
let onePromise:Promise<string[]> = getOne();
let twoPromise:Promise<MyObject> = getTwo();
Promise.all<string[] | MyObject>([onePromise, twoPromise])
.then((values:[string[], MyObject]) => {
let one:string[] = values[0];
let two:MyObject = values[1];
// do stuff
});
或试试这个
$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();
,IN
尝试使用以下内容: -
IN