public function join($tableName, $columnsCompare, $valueCompare = [], $type = "LEFT JOIN") {
        $this->joins[] = [$tableName, $columnsCompare, $valueCompare, $type];
        return $this;
    }
public function join($tableName, $columnsCompare, $valueCompare = [], $type = "LEFT JOIN") {
        $this->joins[] = [$tableName, $columnsCompare, $valueCompare, $type];
        return $this;
    }
public function join ( $ tableName , $ columnsCompare , $ valueCompare = [ ] , $ type = "LEFT JOIN" ) { $ this -> joins [ ] = [ $ tableName , $ columnsCompare , $ valueCompare , $ type ] ; return $ this ; }
Creates an extra join with a new table that doesn't require a model.
@param string|string[string] $tableName Can be string "tableName" or [tableName=>tableAlias]
@param string[] $columnsCompare a list of columns to compare, example: ["t.c1" => "joinTable.c2"]
@param string[] $valueCompare a list of columns with exact values to compare. ["t.c1" => "value"]
@param string $type type of join for this table
@return $this
Creates an extra join with a new table that doesn t require a model .