如何联接两个表而又不从其他记录中填充空列?

时间:2020-04-19 14:53:22

标签: laravel

如何连接两个表以使一个记录在特定列上具有空值,而另一条记录具有其值?

输出应该是这样

enter image description here

正在发生的事情是第二条记录的B.column3被同一列的第一条记录的值填充。

我尝试了此代码,但无法正确选择。

$orders = self::leftJoin('customer_information', function ($join) {
                $join->on('customer_information.id', '=', 'orders.customer_id')
                ->orWhere('orders.customer_id', '=', null);
            })->get();

我该如何实现?

订单表有 - 顾客ID -order_id -total_amount

customer_information有 - ID - 名称 -地址

我想从有或没有customer_id的联接表中获取所有记录。

PS:

  1. 自我==>订单
  2. 订单表中的customer_id有时为空值,因此我无法与customer_information表建立联系

我在Order模型中做到这一点。

1 个答案:

答案 0 :(得分:1)

leftjoin将使用orders或不使用customer_informations获得所有customer_information

$orders = self::leftJoin('customer_information', 'customer_information.id', '=', 'orders.customer_id')->get()