If has existing tables, return a new instance with provided table[s]

{@inheritDoc}
333681
public function table($table, /*# string */ $alias = '')
    {
        $tbl = $this->fixTable($table, $alias);
        $clone = [] === $this->tables ? $this : clone $this;
        $clone->tables = $tbl;
        return $clone;
    }
382669
public function createTable($tableName)
    {
        $table = new Table($tableName);
        $this->_addTable($table);

        foreach ($this->_schemaConfig->getDefaultTableOptions() as $name => $value) {
            $table->addOption($name, $value);
        }

        return $table;
    }
726671
protected function getTableMigrationIndexes($output, $table, $tableName, $new, $old)
    {
        if (empty($table['indexes'])) {
            return $output;
        }
        foreach ($table['indexes'] as $indexName => $indexSequences) {
            if (!isset($old['tables'][$tableName]['indexes'][$indexName])) {
                $output = $this->getIndexCreate($output, $new, $tableName, $indexName);
            } else {
                if ($this->neq($new, $old, ['tables', $tableName, 'indexes', $indexName])) {
                    $output = $this->getIndexCreate($output, $new, $tableName, $indexName);
                }
            }
        }

        return $output;
    }
385756
public function table($table)
    {
        $this->table = $table;
        $alias = $this->alias ?? $this->table;

        if (!in_array('`' . $table . '`.*', $this->select) && !in_array('`' . $alias . '`.*', $this->select)) {
            $this->select[] = '`' . $table . '`.*';
        }

        return $this;
    }
1249301
public function table($table = null, $alias = null)
    {
        $query = new Table($this); return $query->table($table, $alias);
    }
172465
public function from($tables)
    {
        if (is_array($tables)) {
            $this->from = $tables;
        } else {
            $this->from = array($tables);
        }
        return $this;
    }
651328
public function addTable(TableInterface $table)
    {
        $table->setSchema($this);
        $this->_tables[$table->getName()] = $table;
        return $this;
    }
249911
public function addTables(array $tables)
    {
        if (is_array($tables) && count($tables) > 0)
        {
            foreach ($tables as $t)
            {
                $this->addTable($t);
            }
        }

        return $this;
    }
800743
public function from($tables)
	{
		$tables = func_get_args();

		$this->_from = array_merge($this->_from, $tables);

		return $this;
	}
463556
public function from(...$tables)
    {
        foreach ($tables as $table)
        {
            if (is_string($table))
            {
                $this->storageFrom[$table] = $table;
                continue;
            }

            $key  = key($table);
            $item = current($table); // RawQuery

            $this->storageFrom[$key] = $item;
        }

        return $this;
    }
371246
public function table($table)
    {
        if (!isset($this->tables[$table])) {
            $this->tables[$table] = new Table($table, $this->storage);
        }

        return new QueryBuilder($this->tables[$table], $this->filters);
    }
90352
public function queriedTables()
    {
        $tables = array();

        foreach ($this->from as $key => $tableClause) {
            if (is_array($tableClause)) {
                $table = '"' . $tableClause['table'] . '"';
            } elseif (is_string($tableClause) && preg_match('/JOIN +("[^"]+") +(AS|ON) +/i', $tableClause, $matches)) {
                $table = $matches[1];
            } else {
                $table = $tableClause;
            }

            // Handle string replacements
            if ($this->replacementsOld) {
                $table = str_replace($this->replacementsOld, $this->replacementsNew, $table);
            }

            $tables[] = preg_replace('/^"|"$/', '', $table);
        }

        return $tables;
    }
199681
public function getTables($like = null)
    {
        $query = $this->getUtilityQuery();
        $like = $like ? $this->bind($like) : null;
        $results = $this->query($query->showTables($like), $this->getBinds());
        $newResults = [];

        foreach ($results as $result) {
            foreach ($result as $key => $value) {
                $newResults[] = $value;
                break;
            }
        }
        
        return $newResults;
    }
86108
public function from($tables)
    {
        settype($tables, 'array');

        //The table needle
        $needle = $this->_adapter->getTableNeedle();

        //Prepent the table prefix
        foreach ($tables as &$table) {
            if (strpos($table, $needle) !== 0) {
                $table = $needle.$table;
            }
        }

        $this->from = array_unique(array_merge($this->from, $tables));
        return $this;
    }
531899
protected function sql( $table = self::DEFAULT_TABLE )
    {
        if ( self::DEFAULT_TABLE === $table )
        {
            if ( null === $this->sql )
            {
                $this->sql = new Sql(
                    $this->getDbAdapter(),
                    $this->getTableName()
                );
            }

            return $this->sql;
        }

        return new Sql(
            $this->getDbAdapter(),
            $table
        );
    }
1090862
public function updateTable($table, ...$tables)
    {
        $instance = $this->updateQueryInstance();

        $instance->updateQuery()->table($table, ...$tables);

        return $instance;
    }
982427
public function createTableIfNotExists()
    {
        Schema::make(
            $this,
            function ($table) {
                $table->tableName = $this->getTable();

                /*
                | Check if table already exists
                | if not we will create an table to store session info
                 */
                if (!$table->hasTable()->run()) {
                    $table->create(
                        [
                            [
                                'column'    => 'id',
                                'type'      => 'int',
                                'length'    => 11,
                                'increment' => true,
                                'key'       => 'primary',
                            ],
                            ['column' => 'access', 'type' => 'int', 'length' => 11],
                            ['column' => 'data', 'type' => 'text'],
                            ['column' => 'session_id', 'type' => 'string', 'length' => 128],
                        ],
                        'InnoDB',
                        'latin1'
                    )->run();
                }
            }
        );
    }