**Describe the bug**
When you trying to join different mysql tables, clickhouse would accept in WHERE clause only columns from left table.

**Does it reproduce on recent release?**
Yes

**How to reproduce**
Clickhouse 21.1

```
docker run --name misaka -e MYSQL_ROOT_PASSWORD=xxxxx -p 3306:3306 -d mysql:latest
mysql --host 127.0.0.1 --password
> use mysql;
> CREATE TABLE members (
    member_id INT AUTO_INCREMENT,
    name VARCHAR(100),
    PRIMARY KEY (member_id)
);

> CREATE TABLE committees (
    committee_id INT AUTO_INCREMENT,
    name VARCHAR(100),
    PRIMARY KEY (committee_id)
);


> INSERT INTO members(name)
VALUES('John'),('Jane'),('Mary'),('David'),('Amelia');

> INSERT INTO committees(name)
VALUES('John'),('Mary'),('Amelia'),('Joe');

clickhouse

 CREATE DATABASE mysql ENGINE=MySQL('127.0.0.1:3306','mysql','root','xxxxx');


SELECT *
FROM mysql.members AS m
INNER JOIN mysql.committees AS c ON m.name = c.name

┌─member_id─┬─name───┬─committee_id─┬─c.name─┐
│         1 │ John   │            1 │ John   │
│         3 │ Mary   │            2 │ Mary   │
│         5 │ Amelia │            3 │ Amelia │
└───────────┴────────┴──────────────┴────────┘


SELECT *
FROM mysql.members AS m
INNER JOIN mysql.committees AS c ON m.name = c.name
WHERE committee_id = 2

Code: 47. DB::Exception: Received from localhost:9000. DB::Exception: Missing columns: 'committee_id' while processing query: 'committee_id = 2', required columns: 'committee_id' 'committee_id'

SELECT *
FROM mysql.members AS m
INNER JOIN mysql.committees AS c ON m.name = c.name
WHERE `c.name` = 2

Code: 386. DB::Exception: Received from localhost:9000. DB::Exception: There is no supertype for types String, UInt8 because some of them are String/FixedString and some of them are not: while executing 'FUNCTION equals(c.name : 3, 2 : 4) -> equals(c.name, 2) Nullable(UInt8) : 5'. 

^ Clickhouse actually know that c.name type is String.
```

**Additional context**
It looks like that clickhouse trying to push all WHERE conditions to the left mysql table.
https://github.com/ClickHouse/ClickHouse/issues/14614 Looks like related.
{
        if (!node->as<ASTFunction>())
            return;
        std::string name = node->getColumnName();
        if (block_with_constants.has(name))
        {
            auto result = block_with_constants.getByName(name);
            if (!isColumnConst(*result.column))
                return;
            if (result.column->isNullAt(0))
            {
                node = std::make_shared<ASTLiteral>(Field());
            }
            else if (isNumber(result.type))
            {
                node = std::make_shared<ASTLiteral>(assert_cast<const ColumnConst &>(*result.column).getField());
            }
            else
            {
                
                const IColumn & inner_column = assert_cast<const ColumnConst &>(*result.column).getDataColumn();
                WriteBufferFromOwnString out;
                result.type->serializeAsText(inner_column, 0, out, FormatSettings());
                node = std::make_shared<ASTLiteral>(out.str());
            }
        }
    }
};
class DropAliasesMatcher