如何使用Eloquent制作多个子查询?

时间:2014-12-16 12:07:10

标签: laravel

A有这段代码:

    DB::select('
        SELECT SUM(count) as count
          FROM (
            SELECT COUNT(*) AS count FROM ad_banners
            UNION ALL
            SELECT COUNT(*) AS count FROM ad_context
            UNION ALL
            SELECT COUNT(*) AS count FROM ad_content
            UNION ALL
            SELECT COUNT(*) AS count FROM ad_decoration
            UNION ALL
            SELECT COUNT(*) AS count FROM ad_front
            UNION ALL
            SELECT COUNT(*) AS count FROM ad_universal
          ) as ad'
    );

如何使用Eloquent ORM方法进行此查询,这是否有意义?提前谢谢!

修改

我写了这段代码,但是我使用Eloquent的尝试最终失败了。我不明白如何使用union和count进行子查询。我不会为我编写代码,这只是一个小例子。抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用DB::raw()方法?有时,如果您知道要使用的SQL但不知道如何使用Eloquent来完成它,您可以使用DB::raw()来获得所需的结果。这是一个例子,你可以根据自己的需要定制它:

$query = DB::connection('connection_name')->select(DB::raw("SELECT * FROM table WHERE ..."));

此外,connection_name可以在app/config/database.php数组的connections中找到{{1}}。

希望能提供一些见解。如果不了解您的模型和关系以及您想要实现的目标,就很难就此问题提出雄辩的解决方案。