如何将rawsql转换为查询生成器

时间:2017-08-25 09:05:21

标签: php laravel

如何从此rawsql构建查询构建器。

$sql = "SELECT * 
FROM users
INNER JOIN votes ON user.id = votes.user_id
WHERE 
    voting_date BETWEEN '$from_date' AND '$to_date'";

5 个答案:

答案 0 :(得分:0)

$votes = DB::table('users')->join('votes','users.id','=','votes.user_id')
->whereBetween('voting_date',[$from_date,$to_date])->get();

//use db in your controller

答案 1 :(得分:0)

假设你有一个表用户,你 可以尝试这样的事情;

$query = DB::table('users')
->join('votes', 'users.id', '=', 'votes.user_id')
->whereBetween('votes.voting_date', [$from_date, $to_date])
->get();

答案 2 :(得分:0)

你可以简单地使用这个

$sql = "SELECT * 
FROM users
INNER JOIN votes ON user.id = votes.user_id
WHERE 
    voting_date BETWEEN '$from_date' AND '$to_date'";

简单地通过

执行查询
\DB::select(\DB::raw($sql));

答案 3 :(得分:0)

你应该尝试这可能适合你:

$rsltUser = DB::table('users')
    ->join('votes','votes.user_id','=','users.id')
    ->whereBetween('voting_date',[$from_date,$to_date])->get();

答案 4 :(得分:0)

如果您已定义模型User,则可以执行此操作:

User::whereBetween('voting_date',[$from_date,$to_date])
    ->join('votes','users.id','=','votes.user_id')
    ->get();

如果您在模型中定义了与投票的关系,那就更好了。例如:

$posts = Post::whereHas('comments', function ($query) {
    $query->where('content', 'like', 'foo%');
})->get();
相关问题