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);
 }