private SelectBuilder BuidSelect(IDictionary <QueryPart, IEnumerable <Token> > parts, SelectBuilder sb = null) { sb = sb ?? new SelectBuilder(); foreach (var column in Column.SplitByDelimeter(parts[QueryPart.SELECT])) { sb.Column(column); } sb.From(Table.GetRootTable(parts[QueryPart.FROM])); foreach (var join in Table.SplitByJoin(parts[QueryPart.FROM])) { sb.Join(join); } sb.Where(parts[QueryPart.WHERE]); return(sb); }