【问题标题】:how to convert query sentences to DB::raw eloquent laravel?如何将查询语句转换为 DB::raw eloquent laravel?
【发布时间】:2026-02-22 12:30:01
【问题描述】:
SELECT u.*,(
SELECT COUNT(*) FROM (
    SELECT id,author_id FROM posts p
    UNION ALL
    SELECT id, author_id FROM updates up
) total_table WHERE author_id = u.id) as total_post FROM users u ORDER BY total_post

我有查询行想要 DB::raw。你能帮助我吗???非常感谢

【问题讨论】:

    标签: php mysql database laravel-5


    【解决方案1】:

    使用raw query 喜欢:

    DB::select(DB::raw('SELECT u.*,(
    SELECT COUNT(*) FROM (
        SELECT id,author_id FROM posts p
        UNION ALL
        SELECT id, author_id FROM updates up
    ) total_table WHERE author_id = u.id) as total_post FROM users u ORDER BY total_post'));
    

    Reference

    【讨论】:

      【解决方案2】:

      或者你可以使用DB::satement来做到这一点

      $query='SELECT u.*,(SELECT COUNT(*) FROM (
      SELECT id,author_id FROM posts p
      UNION ALL
      SELECT id, author_id FROM updates up) total_table WHERE author_id = u.id) as total_post FROM users u ORDER BY total_post';
      $data=DB::statement($query);
      

      像这样。

      【讨论】: