def METHOD_NAME(self, X: pd.DataFrame, y=None) -> pd.DataFrame:
    """Transform `X` using the specified encoding scheme.
    Parameters
    ----------
    X : :obj:`~pandas.DataFrame`, shape [n_samples, n_features]
        The main table, to be joined to the auxiliary ones.
    y : None
        Unused, only here for compatibility.
    Returns
    -------
    :obj:`~pandas.DataFrame`
        The final joined table.
    """
    for df, cols in self.tables_:
        aux_table = df
        X = fuzzy_join(
            X,
            aux_table,
            left_on=self.main_key,
            right_on=cols,
            match_score=self.match_score,
            analyzer=self.analyzer,
            ngram_range=self.ngram_range,
            suffixes=("", "_aux"),
        )
    return X