def merge(self, keys):
deletes = []<EOL>for pseudo_key, rows in self._rows.items():<EOL><INDENT>self._additional_rows_date2int(keys, rows)<EOL>rows = self._intersection(keys, rows)<EOL>if rows:<EOL><INDENT>rows = self._rows_sort(rows)<EOL>self._rows[pseudo_key] = self._merge_adjacent_rows(rows)<EOL><DEDENT>else:<EOL><INDENT>deletes.append(pseudo_key)<EOL><DEDENT><DEDENT>for pseudo_key in deletes:<EOL><INDENT>del self._rows[pseudo_key]<EOL><DEDENT>
Merges the join on pseudo keys of two or more reference data sets.

:param list[tuple[str,str]] keys: For each data set the keys of the start and end date.