public function assembleJoinClause(JoinClause $clause) { $segments = []; $source = $clause->getSource(); $destination = $clause->getDestination(); if ($source !== null && $destination !== null) { $segments[] = $this->assembleSegment($source) . ' = ' . $this->assembleSegment($destination); } if ($clause->hasPredicates()) { $segments = array_merge($segments, $this->assembleSegments($clause->getPredicates())); } return $clause->getAction() . ' ' . $this->assembleSegment($clause->getTable()) . ' ON ' . implode($clause->getGlue(), $segments); }