Mysql 我不知道如何将此查询转换为雄辩或流畅的查询生成器

Mysql 我不知道如何将此查询转换为雄辩或流畅的查询生成器,mysql,laravel,eloquent,laravel-5,Mysql,Laravel,Eloquent,Laravel 5,我使用的是LaravelV5.1.4。我在网上搜索,但找不到任何解决办法。我尝试了很多方法,但我不知道如何将此查询转换为雄辩或流畅的查询生成器。下面是使用select的工作查询 DB::select("SELECT t1.id,t1.date1,t1.date2, t2.name as pick, t3.name as dest FROM reservations AS t1 LEFT JOIN prices AS t2 ON t1.pick = t2.id

我使用的是LaravelV5.1.4。我在网上搜索,但找不到任何解决办法。我尝试了很多方法,但我不知道如何将此查询转换为雄辩或流畅的查询生成器。下面是使用select的工作查询

DB::select("SELECT t1.id,t1.date1,t1.date2, t2.name as pick, t3.name as dest
        FROM reservations AS t1
        LEFT JOIN prices AS t2 ON t1.pick = t2.id
        LEFT JOIN prices AS t3 ON t1.dest = t3.id
        ORDER BY t2.name ASC
        ");

我想使用雄辩或流畅的功能,如分页。如果你能帮我解决这个问题,我将不胜感激。

我已经解决了。我希望它能对有同样问题的人有所帮助:

DB::table('reservations')->join('prices as t1','reservations.pick',"=","t1.id")
                        ->join('prices as t2','reservations.dest',"=","t2.id")
                        ->select('reservations.id','t1.name as result1','t2.name as result2')->paginate(10);

试试这样的。这是你将如何转变的想法


谢谢你的回复。但这不是解决办法。您使用两个不同的表role_user表和roles表。如果使用相同的表,则无法得到两个不同的名称结果。如果您检查我的查询,我将两次加入同一个表。我需要从价格表中得到两个不同的名称结果。您可以检查我的解决方案,以便我知道,分页是否适用于这种类型的解决方案?或者是否存在与groupBy类似的问题?您可以使用所有查询生成器函数。没有问题;
DB::table('users')
            ->LeftJoin('role_user', 'users.id', '=', 'role_user.user_id')
            ->LeftJoin('roles', 'roles.id', '=', 'role_user.role_id')
            ->select('users.*', 'roles.name as role');