从右表中只有一行的内部连接

时间:2017-02-17 13:59:26

标签: mysql laravel

我需要在我的第一个表上连接多个表,所有表都具有相同的行数并完美地连接。但是,除了添加的日期之外,加入最后一个包含许多行的表格,因此它会将我的数据复制到每个用户的月数。是否可以只在其中一条线上加入。哪一个没关系。

$rekeninge = DB::connection('odbc')
->table($this->mgk . '.D000M00L')
->leftJoin($this->div . '.D050M00P', $this->div . '.D050M00P.RKNR', '=', $this->mgk . '.D000M00L.RKNR')
->leftJoin($this->mgk . '.VFDIND00P', $this->mgk . '.VFDIND00P.F06', '=', $this->mgk . '.D000M00L.RKNR')
->leftJoin($this->mgk . '.VINDEXP', $this->mgk . '.VINDEXP.VNAAM', '=', $this->mgk . '.VFDIND00P.VFDVELDID')
->where([
    'F02' => 'A',
    'F165' => 'D'
])
->get();

提前谢谢

1 个答案:

答案 0 :(得分:1)

您需要group结果by其中一列:

https://laravel.com/docs/5.4/queries#ordering-grouping-limit-and-offset

所以你的查询最终会是这样的:

$rekeninge = DB::connection('odbc')
->table($this->mgk . '.D000M00L')
->leftJoin($this->div . '.D050M00P', $this->div . '.D050M00P.RKNR', '=', $this->mgk . '.D000M00L.RKNR')
->leftJoin($this->mgk . '.VFDIND00P', $this->mgk . '.VFDIND00P.F06', '=', $this->mgk . '.D000M00L.RKNR')
->leftJoin($this->mgk . '.VINDEXP', $this->mgk . '.VINDEXP.VNAAM', '=', $this->mgk . '.VFDIND00P.VFDVELDID')
->where([
    'F02' => 'A',
    'F165' => 'D'
])
->groupBy('month')
->get();
相关问题