def __init__(self, type_: JoinType, left: Union[(Model, JoinChain)], right: Model) -> None:
    self.type = type_
    self.left = left
    self.right = right
    self.on_ = None
def __init__(self, type_: JoinType, left: Union[(Model, JoinChain)], right: Model) -> None:
    self.type = type_
    self.left = left
    self.right = right
    self.on_ = None