У меня есть таблица связей MyISAM между организациями и частными лицами.Каждая запись имеет дату начала и окончания.Эти записи добавляются при обработке больших текстовых файлов, поэтому я не выполняю много обработки и очистки, поскольку они добавляются для ускорения синтаксического анализа текста.Однако некоторые записи являются избыточными или потенциально избыточными, поскольку они содержат диапазоны дат, которые перекрываются.
Например, я мог бы иметь следующее:
aff_id aff_e1_id aff_e1_type aff_e2_id aff_e2_type aff_start aff_end
------ --------- ----------- --------- ----------- ----------- ----------
01 172 org 131 indiv 1997-01-22 1998-03-31
02 172 org 131 indiv 1997-01-22 1999-04-03
03 100 org 127 indiv 1995-01-02 2000-01-05
04 100 org 127 indiv 1994-01-24 1999-03-04
Что я хотел бы сделать, этообъедините записи, которые являются избыточными отношениями, и измените диапазон дат, чтобы включить любые совпадения.Например, первые две и две последние записи, соответственно, можно объединить, а даты изменить, чтобы включить обе даты.
Есть ли способ сделать это полностью в MySQL?
Отредактировано: В ответ на комментарии ниже столбцы 2, 3, 4, 5 должны быть идентичными, а затем проверить, не перекрываются ли даты (если они вообще не перекрываются, можно просто оставить их в покое).
Хранимая процедура была бы хороша, но есть ли более быстрый способ, чем использовать курсор для циклического перебора всех записей и сравнения их один на один?