如何在 Laravel 中编写这个复杂的查询?

How to write this complex query in Laravel?

大家好,请问我如何编写这个查询:

$laureats=Laureat::select('laureats.*')
    ->from(DB::raw(" SELECT laureats.nom FROM laureats,traces WHERE laureats.id=traces.laureat_id AND traces.etat_id=$etat
            and traces.etat_id=(select etat_id from traces where traces.laureat_id=laureats.id ORDER BY traces.dateTrace desc limit 1)"))
    ->get();

你刚才问的一切,都在 docs:

我看到您正在 运行宁 SELECT 查询,其中 WHERE 子句带有 AND,另一个查询在 where 子句中。

我给你解释一下:

Select 仅使用 laureats.nom 的查询结果如下:

$nom = DB::table('laureats')->pluck('nom');

使用多个 where:

$nom = DB::table('laureats')->where('votes', '>', 100)->where('votes', '>', 100)->pluck('nom');

您可以 运行 在另一个查询中查询:

->where(function($query)
        {
            $query->select(DB::raw(1))
                  ->from('traces')
                  ->whereRaw('something = something');
        })

这就是它的样子。由于这些都在文档中,您应该自己尝试一下。