**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.
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>())
        {