table A:
![image](https://user-images.githubusercontent.com/17606375/105842341-f9b40580-6010-11eb-8507-6ea46fe814c8.png)
table B:
![image](https://user-images.githubusercontent.com/17606375/105842364-0173aa00-6011-11eb-94a3-47c162dd40fd.png)

select 
  "T_8FB5CF"."id1" "__fcol_0", 
  "T_8FB5CF"."id2" "__fcol_1", 
  "T_8FB5CF"."id3" "__fcol_2", 
  "T_8FB5CF"."id4" "__fcol_3", 
  "T_8FB5CF"."id5" "__fcol_4", 
  "T_8FB5CF"."date" "__fcol_5", 
  "T_8FB5CF"."shuzhi" "__fcol_6", 
  "T_8FB5CF"."数值2" "__fcol_7"
from "A1"."B" "T_8FB5CF"
  left outer join "A1"."A" "T_8C7546"
  on "T_8FB5CF"."id2" = "T_8C7546"."id2"
where (
  "T_8C7546"."id2" = ''
  or "T_8C7546"."id2" is null
)
limit 5000
ClickHouse exception, code: 47, host: 192.168.5.67, port: 8123; Code: 47, e.displayText() = DB::Exception: Missing columns: 'T_8C7546.id2' while processing query: '(T_8C7546.id2 = '') OR isNull(T_8C7546.id2)', required columns: 'T_8C7546.id2', source columns: '数值2' 'shuzhi' 'date' 'id5' 'id3' 'id2' 'id4' 'id1' (version 20.5.4.40)
|| 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(