**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 State & state = State::instance();
    check("SELECT column FROM test.table WHERE column LIKE '%hello%'",
          R"(SELECT "column" FROM "test"."table" WHERE "column" LIKE '%hello%')",
          state.context, state.columns);
    check("SELECT column FROM test.table WHERE column NOT LIKE 'w%rld'",
          R"(SELECT "column" FROM "test"."table" WHERE "column" NOT LIKE 'w%rld')",
          state.context, state.columns);
}
TEST(TransformQueryForExternalDatabase, Substring)
{
    const State & state = State::instance();
    check("SELECT column FROM test.table WHERE left(column, 10) = RIGHT(column, 10) AND SUBSTRING(column FROM 1 FOR 2) = 'Hello'",
          R"(SELECT "column" FROM "test"."table")",
          state.context, state.columns);
}
TEST(TransformQueryForExternalDatabase, MultipleAndSubqueries)