Mysql 仅与右表中的一行进行元素内部联接

Mysql 仅与右表中的一行进行元素内部联接,mysql,laravel,Mysql,Laravel,首先,我需要连接多个表,所有表的行数和连接都相同。但是加入最后一个表,除了添加的日期之外,它有许多行完全相同,因此它将我的数据复制到每个用户的月数。可以只在其中一条线上连接吗。不管是哪一个 $rekeninge = DB::connection('odbc') ->table($this->mgk . '.D000M00L') ->leftJoin($this->div . '.D050M00P', $this->div . '.D050M00P.RKNR', '=

首先,我需要连接多个表,所有表的行数和连接都相同。但是加入最后一个表,除了添加的日期之外,它有许多行完全相同,因此它将我的数据复制到每个用户的月数。可以只在其中一条线上连接吗。不管是哪一个

$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();
提前感谢

您需要按以下列之一对结果进行分组:

因此,您的查询结果如下:

$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();

哪一个应该重要都不重要!事实并非如此,这有时是设计拙劣的征兆!!这并不重要,因为该表每月更新一次债务人每月的变化。我不在乎这些变化,我只寻找记录在每一行上的债务人姓名。除了性能优势之外,在没有任何聚合功能的情况下,GROUP BY子句很少是一个好主意。