public JoinedTableOn(Column parentTableColumn, ForeignColumn joinedTableColumn, IAliasable parentTableAlias, IAliasable joinedTableAlias, SqlType sqlType)
        {
            parentTableColumn.CheckWhetherArgumentIsNull("parentTableColumn");
            joinedTableColumn.CheckWhetherArgumentIsNull("joinedTableColumn");
            parentTableAlias.CheckWhetherArgumentIsNull("parentTableAlias");
            joinedTableAlias.CheckWhetherArgumentIsNull("joinedTableAlias");

            this.parentTableColumn = parentTableColumn;
            this.joinedTableColumn = joinedTableColumn;
            this.parentTableAlias = parentTableAlias;
            this.joinedTableAlias = joinedTableAlias;
            this.formatModel = sqlType.BuildFormatSystemModel();

            // set aliases
            joinedTableColumn.SetTableAlias(this.joinedTableAlias.Alias);
        }