public function innerJoin($table, ...$criterion): self
    {
        $this->join[] = $this->joinArgumentsToJoinObject('INNER', $table, $criterion);
        return $this;
    }
public function innerJoin($table, ...$criterion): self
    {
        $this->join[] = $this->joinArgumentsToJoinObject('INNER', $table, $criterion);
        return $this;
    }
public function innerJoin ( $ table , ... $ criterion ) : self { $ this -> join [ ] = $ this -> joinArgumentsToJoinObject ( 'INNER' , $ table , $ criterion ) ; return $ this ; }
Adds a table joined with the "inner" rule.

The first argument is a table name or an array where the first value is a table name and the second value is the
table alias name.

The rest arguments may have one of the following formats:
- column1, rule, column1 — column compared to another column by the given rule. Include a table name to
eliminate an ambiguity;
- column1, column2 — column is equal to another column;
- Closure – complex joining criterion;
- array[] – criteria joined by the AND rule (the values are the arguments lists for this method);
- Raw – raw SQL.

@param string|\Closure|Query|StatementInterface|string[]|\Closure[]|self[]|StatementInterface[] $table
@param string|\Closure|Query|StatementInterface|array[] $column1
@param string|\Closure|Query|StatementInterface|null $rule
@param string|\Closure|Query|StatementInterface|null $column2
@return $this
@throws InvalidArgumentException
@throws InvalidReturnValueException
Adds a table joined with the inner rule .