php - Laravel Join 只选择一个匹配项

标签 php mysql laravel laravel-4

我目前正在尝试从“organizations”表中获取一些信息,然后需要从“organization_stocks”表中获取有关该组织的一些值,但我只想要最新的匹配项,并且只有那个匹配项(所以 1 个匹配项每个组织)

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

        $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();

谢谢。

最佳答案

如果您只想要最新的比赛,您只需使用 ->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/

关于php - Laravel Join 只选择一个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31812245/

相关文章:

php - 在 PHP 中通过 CURL 的 Google Sites API - 获取 "Content is not allowed in prolog."

mysql操作结果,替换字符串

laravel - 从 Laravel tinker 控制台 (sqlite) 迁移时出错

php - 无法在 laravel 5.2 中发送没有发件人地址的消息 我已经设置了 .env 和 mail.php

php - ffmpeg:在php中使用返回的数据

javascript - Laravel - 选择2 |表单重置时重置选择值

php - 向 mysql 中插入多行(以逗号分隔的项目)

mysql - 当我从表中获取最大列时必须获取相应的时间戳

php - 使用 Laravel View::share 访问共享数组中的项目

php - 在这里使用 gettext 如何帮助我?