public string Compile(ITableJoin value, SelectQuery query, IQueryParameterManager parameters) { var join = value as GroupedTableJoin; var joinCompiler = new TableJoinTableJoinCompiler() { NewLine = null }; var nestedJoinSql = string.Empty; foreach (var nested in join.GroupedJoins) { nestedJoinSql += joinCompiler.Compile(nested, query, parameters) + " "; } var result = string.Format("\n\t {0} ({1} AS {2} {3}) ON {2}.{4} = {5}.{6} {7} ", join.JoinType.ToSqlString(), join.JoinTable.TableName, join.JoinTable.Alias, nestedJoinSql, join.JoinField.Name, join.ForeignColumn.TableAlias, join.ForeignColumn.Field.Name, join.Extra); return(result); }
public string Compile(ITableJoin value, SelectQuery query, IQueryParameterManager parameters) { var join = value as TableJoin; var result = string.Format("{7} {0} {1} AS {2} ON {2}.{3} = {4}.{5} {6} ", join.JoinType.ToSqlString(), join.JoinTable.TableName, join.JoinTable.Alias, join.JoinField.Name, join.ForeignColumn.TableAlias, join.ForeignColumn.Field.Name, join.Extra, NewLine); return(result); }
public void AddJoin(ITableJoin join) { this.joins.Add(join.Table1.TableName, join); }