【问题标题】:How to join tables in laravel如何在 laravel 中加入表格
【发布时间】:2021-06-14 18:33:16
【问题描述】:

我有三个表想要将它们连接在一起。第一个表是问题,第二个是部分,第三个是选项。 我想获取表格问题的所有记录,例如,formid 是 120,并且它的 questionid 等于所获取问题表格 questionid 的 questionid 的表格部分的所有记录。 以及第三个表“选项”的所有记录,其中 options.questionid=questions.questionid。

    $questions=DB::table('sections')
            ->rightJoin('questions',function($join ){
                $join->on('questions.questionid','=','sections.questionid');
            })
            ->leftJoin('options',function($join ){
                $join->on('questions.questionid','=','options.questionid');
            })
            ->where('questions.formid',$formId)
            ->get();

此代码在sections 表中没有匹配的questionid 返回null。 如何解决这个问题?

【问题讨论】:

  • 那么,对于不匹配的问题,您希望搜索返回什么?
  • 问题表的questionid where('questions.formid',$formId) @Shadow
  • 在 DB::table() 中,您应该使用问题,然后与它进行连接。

标签: php laravel


【解决方案1】:

试试看。

$questions=DB::table('questions')
        ->join('sections',function($join ){
            $join->on('questions.questionid','=','sections.questionid');
        })
        ->join('options',function($join ){
            $join->on('questions.questionid','=','options.questionid');
        })
        ->where('questions.formid',$formId)
        ->get();

【讨论】:

  • 它什么也不返回@Kaleem Shoukat
  • 重要的是查询返回我的问题记录 where questions.formid = $formId 匹配的记录是否存在于部分或选项表中@Kaleem Shoukat
猜你喜欢
  • 1970-01-01
  • 2013-10-12
  • 2019-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-06
  • 2019-04-26
相关资源
最近更新 更多