【问题标题】:How do I convert raw SQL query into laravel querybuilder or eloquent如何将原始 SQL 查询转换为 laravel 查询构建器或 eloquent
【发布时间】:2020-02-07 14:02:07
【问题描述】:

我很难在 phpmyadmin 中转换这个原始的 MySQL 查询。我想将其转换为 laravel 的查询生成器或 eloquent。我已经在模型中配置了关系。有人可以将我的查询转换为 querybuilder 和 eloquent 吗?我尝试了一些转换器,但它对我不起作用。谢谢

原始查询

SELECT count( * ) FROM users u, sectionschedules s, notes n 
WHERE u.parent_id=26 
AND u.section_id=s.section_id 
AND s.id = n.schedule_id;

我试过的查询

$notes = DB::table('notes')
                    ->join('users', 'users.section_id', '=', 'notes.section_id')
                    ->join('sections','sections.section_id', '=', 'sectionschedules.section_id')
                    ->join('sectionschedules', 'sectionschedules.id','=','notes.schedule_id')
                    ->where('user.parent_id', '=', 26)
                    ->count();

我遇到的错误

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'user.parent_id' in 'where clause

【问题讨论】:

  • 不应该是'users.parent_id',因为表user没有定义。
  • 你是什么意思,先生?

标签: php mysql laravel eloquent


【解决方案1】:

试试

  $notes = DB::table('sectionschedules')
           ->select('notes.*','sectionschedules.*','users.*')
           ->join('users','users.section_id', '=', 'sectionschedules.section_id')
           ->join('notes', 'sectionschedules.id','=','notes.schedule_id')
           ->where('users.parent_id', '=', 26)
           ->count();

【讨论】:

  • 我收到SQLSTATE[42S22]: Column not found: 1054 Unknown column 'notes.section_id' in 'on clause' 错误先生
  • 如果您要发布一个更可能是拼写错误的答案,那么至少要指出您所做的更改是什么。
  • 仍然遇到同样的错误,先生SQLSTATE[42S22]: Column not found: 1054 Unknown column 'notes.section_id' in 'on clause'
  • 那你如何加入notes的表?
  • ->join('users', 'users.section_id', '=', 'notes.section_id') . 那么这个join是什么意思呢?
【解决方案2】:
$notes = DB::table('notes')
                ->join('users', 'users.section_id', '=', 'notes.section_id')
                ->join('sections','sections.section_id', '=', 'sectionschedules.section_id')
                ->join('sectionschedules', 'sectionschedules.id','=','notes.schedule_id')
                ->where('users.parent_id', '=', 26)
                ->count();

Users.parent id 定义为不是 user.parent_id

【讨论】:

    猜你喜欢
    • 2020-10-19
    • 2021-08-19
    • 1970-01-01
    • 2019-05-31
    • 2021-09-11
    • 2019-04-29
    • 2019-04-04
    • 2018-09-12
    • 2016-02-11
    相关资源
    最近更新 更多