public function join($table, $one, $two, $type = 'INNER')
    {
        if ( ! in_array($type, ['INNER', 'LEFT', 'RIGHT'])) {
            throw new \InvalidArgumentException("Error join mode");
        }
        // set table prefix
        $table = $this->_wrapTable($table);
        // create join string
        $this->_join_str .= ' '.$type.' JOIN '.self::_wrapRow($table).
            ' ON '.self::_wrapRow($one).' = '.self::_wrapRow($two);
        return $this;
    }
public function join($table, $one, $two, $type = 'INNER')
    {
        if ( ! in_array($type, ['INNER', 'LEFT', 'RIGHT'])) {
            throw new \InvalidArgumentException("Error join mode");
        }
        // set table prefix
        $table = $this->_wrapTable($table);
        // create join string
        $this->_join_str .= ' '.$type.' JOIN '.self::_wrapRow($table).
            ' ON '.self::_wrapRow($one).' = '.self::_wrapRow($two);
        return $this;
    }
public function join ( $ table , $ one , $ two , $ type = 'INNER' ) { if ( ! in_array ( $ type , [ 'INNER' , 'LEFT' , 'RIGHT' ] ) ) { throw new \ InvalidArgumentException ( "Error join mode" ) ; } // set table prefix $ table = $ this -> _wrapTable ( $ table ) ; // create join string $ this -> _join_str .= ' ' . $ type . ' JOIN ' . self :: _wrapRow ( $ table ) . ' ON ' . self :: _wrapRow ( $ one ) . ' = ' . self :: _wrapRow ( $ two ) ; return $ this ; }
build join string

@param  string $table
@param  string $one
@param  string $two
@param  string $type
@return  self
@throws  \InvalidArgumentException
build join string