**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'. 
```

|| name == "greaterOrEquals"
            || name == "like"
            || name == "notLike"
            || name == "in"
            || name == "notIn"
            || name == "tuple"))
            return false;
        
        
        if (name == "tuple" && function->arguments->children.size() <= 1)
            return false;
        
        if ((name == "in" || name == "notIn")
            && (function->arguments->children.size() != 2
                || function->arguments->children[1]->as<ASTIdentifier>()))
            return false;
        for (const auto & expr : function->arguments->children)
            if (!isCompatible(*expr))
                return false;
        return true;
    }
    if (const auto * literal = node.as<ASTLiteral>())
    {
        
        return literal->value.getType() != Field::Types::Array;
    }
    return node.as<ASTIdentifier>();
}
}
String transformQueryForExternalDatabase(