Generates the sql for the SELECT portion of the query

        :return: the SELECT portion of the query
        :rtype: str

def build_select_fields(self):
        """
        Generates the sql for the SELECT portion of the query

        :return: the SELECT portion of the query
        :rtype: str
        """
        field_sql = []

        # get the field sql for each table
        for table in self.tables:
            field_sql += table.get_field_sql()

        # get the field sql for each join table
        for join_item in self.joins:
            field_sql += join_item.right_table.get_field_sql()

        # combine all field sql separated by a comma
        sql = 'SELECT {0}{1} '.format(self.get_distinct_sql(), ', '.join(field_sql))
        return sql