public function join(
        $table, $clause, array $fields = [], $type = self::JOIN_LEFT)
    {
        if (empty($fields)) {
            $fields = array("*");
        }
        $this->getJoins()->append(
            array(
                'table' => $table,
                'onClause' => $clause,
                'fields' => $fields,
                'type' => $type
            )
        );
        return $this;
    }