如何显示来自多个模型的数据并将其排序在一个表中(laravel)

时间:2018-12-16 01:05:20

标签: php laravel join

我有四个模型称其为A B C D,我要做的就是将其显示在一个表中并进行排序

+----+-------+---------------------+-------+
| 1. | B-5   | 2018-12-11 10:52:22 | 20    |
+----+-------+---------------------+-------+
| 2. | A-4   | 2018-12-11 09:52:22 | 10    |
+----+-------+---------------------+-------+
| 3. | C-3   | 2018-12-11 08:52:22 | 20    |
+----+-------+---------------------+-------+

对于SQL查询,它看起来像这样

SELECT `code`, `updated_at`, `qty` FROM `a`
UNION ALL
SELECT `code`, `updated_at`, `qty` FROM `b`
UNION ALL
SELECT `code`, `updated_at`, `qty` FROM `c`
UNION ALL
SELECT `code`, `updated_at`, `qty` FROM `d`
ORDER BY `updated_at`

有可能这样做吗?以及如果可能的话怎么做?

1 个答案:

答案 0 :(得分:0)

为此使用联接,这是一个示例:

$codes= DB::table('a')
            ->join('b', 'a.id', '=', 'b.user_id')
            ->join('c', 'a.id', '=', 'c.user_id')
            ->join('d', 'a.id', '=', 'd.user_id')
            ->select('a.*', 'b.*', 'c.*')
            ->orderBy('a.updated_at','desc')
            ->get();