Laravel加入只选择一场比赛

时间:2015-08-04 14:37:43

标签: php mysql laravel laravel-4

我目前正试图从"组织"获取一些信息。表,然后需要一些关于这个组织的价值观来自" organization_stocks"表,但我只想要最新的匹配,只有那个(每个组织一个匹配)

这是我当前的代码,但正如您所看到的,它返回属于同一组织的多个行。

        $data = DB::table('organization_stocks')
            ->rightJoin('organizations', 'organizations.id', '=', 'organization_stocks.organization_id')
            ->select('organizations.id', 'organizations.name', 'organization_stocks.value', 'organization_stocks.change', 'organization_stocks.state')
            ->where('active', '=', '1')
            ->orderBy('organization_stocks.timestamp', 'desc')
            ->take(5)
            ->get();

感谢。

1 个答案:

答案 0 :(得分:1)

如果您只想要最新的匹配,则只需使用->first();代替->get(),因为您已经订购了它们,您应该没问题。我假设timestamp是您的专栏created_at

您可以在此处查看更多信息:http://laravel.com/docs/4.2/eloquent

文档中给出的示例:$comments = Post::find(1)->comments()->where('title', '=', 'foo')->first();

编辑:您也可以通过简单地正确设置模型关系来实现您想要的而无需所有连接,如果您需要进一步阅读本文可能有所帮助:http://culttt.com/2013/06/10/laravel-4-eloquent-model-relationships/