.. :py:method::

        Usage::

            >>> joint('user', 'name, id_number', 'medical_card', 'number', 'id', 'user_id', 'inner_join')
            select u.name, u.id_number, v.number from user as u inner join medical_card as v on u.id=v.user_id;

def joint(self, table, fields,
                    join_table, join_fields,
                    condition_field, condition_join_field,
                    join_method='left_join'):
        """.. :py:method::

        Usage::

            >>> joint('user', 'name, id_number', 'medical_card', 'number', 'id', 'user_id', 'inner_join')
            select u.name, u.id_number, v.number from user as u inner join medical_card as v on u.id=v.user_id;

        """
        import string
        fields = map(string.strip, fields.split(','))
        select = ', '.join( ['u.{}'.format(field) for field in fields] )
        join_fields = map(string.strip, join_fields.split(','))
        join_select = ', '.join( ['v.{}'.format(field) for field in join_fields] )

        sql = "select {select}, {join_select} from {table} as u {join_method}"\
               " {join_table} as v on u.{condition_field}="\
               "v.{condition_join_field};".format(select=select,
                                                 join_select=join_select,
                                                 table=table,
                                                 join_method=join_method,
                                                 join_table=join_table,
                                                 condition_field=condition_field,
                                                 condition_join_field=condition_join_field)
        return super(PGWrapper, self).execute(sql, result=True).results