**Describe the bug**
If you make a query to MySQL Engine Table with joined MergeTree Engine Table, you use any columns of the latter.


**How to reproduce**
* ClickHouse server 20.8.2
* ClickHouse client version 20.8.2.3 (official build).

```sql
CREATE TABLE mysql_table
(
    `id` UInt64,
    `name` Nullable(String),
)
ENGINE = MySQL('test:3306', 'test', 'test', 'test', 'test');
```

```sql
CREATE TABLE ch_table
(
    `id` UInt64,
    `mysql_item_id` UInt64,
    `d` DateTime
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(d)
ORDER BY d;
```

Query 
```sql
    SELECT *
    FROM mysql_table AS t_mysql_table
    LEFT JOIN ch_table AS t_ch_table 
         ON t_ch_table.mysql_item_id = t_mysql_table.id
    WHERE t_ch_table.id > 100
```

**Expected behavior**
Returns empty result without errors.

**Error message and/or stacktrace**
```
Code: 47. DB::Exception: Received from test:9000. DB::Exception: Missing columns: 't_ch_table.id' while processing query: 't_ch_table.id > 100', required columns: 't_ch_table.id', source columns: 'id', 'name'. 
```

const SelectQueryInfo & query_info,
    const NamesAndTypesList & available_columns,
    IdentifierQuotingStyle identifier_quoting_style,
    const String & database,
    const String & table,
    const Context & context)
{
    auto clone_query = query_info.query->clone();
    const Names used_columns = query_info.syntax_analyzer_result->requiredSourceColumns();
    auto select = std::make_shared<ASTSelectQuery>();
    select->replaceDatabaseAndTable(database, table);
    auto select_expr_list = std::make_shared<ASTExpressionList>();
    for (const auto & name : used_columns)
        select_expr_list->children.push_back(std::make_shared<ASTIdentifier>(name));
    select->setExpression(ASTSelectQuery::Expression::SELECT, std::move(select_expr_list));
    /** If there was WHERE,
      * copy it to transformed query if it is compatible,
      * or if it is AND expression,
      * copy only compatible parts of it.
      */
    ASTPtr original_where = clone_query->as<ASTSelectQuery &>().where();
    if (original_where)
    {
        replaceConstantExpressions(original_where, context, available_columns);
        if (isCompatible(*original_where))
        {
            select->setExpression(ASTSelectQuery::Expression::WHERE, std::move(original_where));
        }
        else if (const auto * function = original_where->as<ASTFunction>())
        {