【问题标题】:Limit DB::query on multiple tables in laravel限制 Laravel 中多个表的 DB::query
【发布时间】:2016-04-24 04:54:52
【问题描述】:

我正在对多个表运行查询,我想将其限制为 5 个结果,但它给了我以下错误。

$projects = DB::query("select * from project, project_budget,user 
                    where prj_id=pb_prj_id 
                    and prj_usr_id=usr_id 
                    and prj_status = 'open' 
                    and prj_expiry>'".date("Y-m-d H:i:s")."' 
                    order by prj_updated_date desc")->take(5)->get();

SQLSTATE[HY000]:一般错误:1096 未使用表(SQL:select * limit 5)

【问题讨论】:

  • 别忘了Laravel has placeholders 让您的工作更安全。
  • 如果你需要使用DB::query,那么它应该是一个原始查询,所以limit 5应该在query中作为order by prj_updated_date desc limit 5

标签: mysql database laravel


【解决方案1】:

我通过使用查询生成器解决了。

$projectExpiry = date("Y-m-d H:i:s"); 
$projects =     DB::table('project')
                ->join('project_budget', 'project.prj_id', '=', 'project_budget.pb_prj_id')
                ->join('users', 'project.prj_usr_id', '=', 'users.prj_usr_id')
                ->where('prj_status',  '=' , 'open')
                ->where('prj_expiry',  '<' , $projectExpiry )
                ->orderBy('prj_updated_date',  'desc')
                ->take(5)->get();

【讨论】:

    猜你喜欢
    • 2019-08-30
    • 1970-01-01
    • 2017-06-14
    • 2020-05-28
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 2021-10-13
    • 2016-03-09
    相关资源
    最近更新 更多