Analog to SQL "INNER JOIN". +joiners+ is a list with entries of the
        form:

        {
            'table': <table_name>,
            'on': [<foreign_key>, <local_id>]
        }

        Example:

        >>> Repo('bs').inner_join(
            {'table': 'cs', on: ['b_id', 'id']}).select("*")
        SELECT bs.* FROM bs INNER JOIN cs ON cs.b_id == bs.id

def inner_join(self, *joiners):
        """
        Analog to SQL "INNER JOIN". +joiners+ is a list with entries of the
        form:

        {
            'table': <table_name>,
            'on': [<foreign_key>, <local_id>]
        }

        Example:

        >>> Repo('bs').inner_join(
            {'table': 'cs', on: ['b_id', 'id']}).select("*")
        SELECT bs.* FROM bs INNER JOIN cs ON cs.b_id == bs.id
        """
        def inner_joins(js, current_table):
            for joiner in js:
                yield (((current_table, joiner['on'][1]),
                        (joiner['table'], joiner['on'][0])))
                current_table = joiner['table']

        self.inner_joins = list(inner_joins(joiners, self.table_name))
        return self