【问题标题】:Query from two tables and orderBy date in laravel在 laravel 中从两个表和 orderBy 日期查询
【发布时间】:2015-03-25 18:29:51
【问题描述】:

我的 Eloquent 各有两张表。我想从每个特定字段中获取结果(使用 where 子句)

然后我想合并这两个结果数组并按 createdAt 日期排序

如何在 laravel5 中实现这一点?我尝试使用关系但无法使其工作

这个例子分别是两个数组

 $football = Football::where('playerId','=',$id)->get()->toArray();

  $tennis= Tennis::where('playerId','=',$id)->get()->toArray(); 

提前致谢

【问题讨论】:

    标签: php eloquent laravel-5


    【解决方案1】:

    假设它们在不同的桌子上,我可以想到 2 个解决方案:

    1)首先你必须获取两个结果,然后你可以使用

    在 php 中排序
    $results = array_merge($football, $tennis);
    usort($results, function($a,$b) { 
        return $a['created_at'] < $b['created_at'];
    });
    

    2) 使用原始查询,运行 UNION :

    SELECT * FROM (
      SELECT * FROM football WHERE playerId = X
      UNION ALL 
      SELECT * FROM tennis WHERE playerId = X
    ) AS A ORDER BY created_at;
    

    【讨论】:

      猜你喜欢
      • 2020-01-01
      • 1970-01-01
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 2016-01-26
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多