【问题标题】:Force Eloquent to retrieve data using inner joins强制 Eloquent 使用内部连接检索数据
【发布时间】:2017-06-01 22:08:02
【问题描述】:

有什么方法可以使用 Laravel Eloquent ORM 创建一个 ->get() 并强制它使用内部连接而不是使用 whereIn 进行查询。 我有这样的数据关系,因为表中有很多数据,Eloquent 需要很长时间才能提供数据。

$people= People::with(
        'pets',
        'peopleSize',
        'cars',
        'house',
        'child'
    )->get();

这在使用 whereIn 语句创建一个查询时,该语句包含我拥有的所有人员的 id,对于 with 语句中的所有其他关系也是如此。 有什么方法可以改变使用 Eloquent ORM 的内部连接?

【问题讨论】:

    标签: mysql laravel-5.2 php-5.6


    【解决方案1】:

    是的,你可以加入 laravel。你必须阅读 laravel 的文档。你可以像这样使用 join :- https://laravel.com/docs/5.4/queries#joins 在您的情况下,我将提供一个示例:-

    $people= DB::table('peoples')
              ->join('pets', 'peoples.id', '=', 'pets.people_id')
              ->join('people_sizes', 'peoples.id', '=', 'people_sizes.people_id')
              ->get();
    

    希望对您有所帮助!

    【讨论】:

    • 感谢您的回答!但在这种情况下,如果我使用查询生成器来检索数据,那将是相同的。我想知道我是否以正确的方式使用 Eloquent ORM。
    猜你喜欢
    • 1970-01-01
    • 2015-05-06
    • 2011-01-19
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 2014-06-15
    相关资源
    最近更新 更多