【问题标题】:Laravel 5 - How to use union in more than two tables/queries with Query Builder or Eloquent?Laravel 5 - 如何使用查询生成器或 Eloquent 在两个以上的表/查询中使用联合?
【发布时间】:2017-07-25 19:06:28
【问题描述】:

我有 10 张表我想要“联合”。这是我的表名与相同的字段。

sell_2007
sell_2008
sell_2009
...
sell_2015
sell_2016

在 laravel 给出的示例中,仅在两个表中进行联合(https://laravel.com/docs/5.3/queries#unions),如果表超过两个表/查询怎么办?就我而言,有 10 张桌子。如何使用 Query Builder 或 Eloquent 做到这一点?

感谢您的帮助。

【问题讨论】:

    标签: php laravel laravel-5.3 unions


    【解决方案1】:

    你可以像这样添加多个联合;

    $first = DB::table('sell_2007');
    $second = DB::table('sell_2008');
    
    $users = DB::table('users')
            ->union($first)
            ->union($second)
            ->get();
    

    您可能会发现使用 RAW SQL 查询合并表会获得更好的性能。

    【讨论】:

    • SQLSTATE[21000]:基数违规:1222 使用的 SELECT 语句具有不同的列数..
    • 您需要为联合中的每个表指定相同的列数
    猜你喜欢
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 2017-03-29
    相关资源
    最近更新 更多