Мне нужно написать запрос, который будет проходить через таблицу, находить дублирующиеся пары данных, удалять одну из них, а затем обновлять любые таблицы, которые указывали на удаленный элемент, чтобы указать на тот, который я храню.
У меня есть две проблемы с этим. Во-первых, мне не очень нравится процедурный SQL, поэтому я не знаю, какие структуры и т. Д. Лучше всего для этого сделать.
Во-вторых, это становится сложнее. Таблица содержит адреса, каждый адрес имеет идентификатор клиента, которому он принадлежит. У клиента может быть много адресов. У клиента должен быть хотя бы один адрес проживания. Так что, если у клиента есть 2 адреса, это довольно просто, проверьте, совпадают ли они, если так, оставьте один из них по месту жительства, удалите другие, обновите ссылки, в этом случае мне просто нужно знать выше.
Но как насчет того, когда клиент имеет более одного адреса, как вы проверяете пары по одной. Я знаю, что вы можете присоединиться к таблице самостоятельно, но как вы решите, что сохранить, поскольку при прохождении всех пар удаляются все адреса, если все они идентичны !!
Тогда есть случай, когда существует один адрес проживания и два идентичных почтовых адреса, мне нужно удалить один из почтовых адресов, но все же проверить, существует ли адрес проживания для клиента.
Я понимаю, что это много угловых случаев, так что, если кто-то может просто помочь с структурами, используемыми для выполнения этих проверок, это было бы чрезвычайно полезно!
Для вас, визуальных людей, предположим, что данные выглядят так:
ID CustID Address Type
1 25 123 St R
2 36 567 Rd R
3 36 567 Rd R < should be removed
4 36 567 Rd P < should be removed
5 25 99 Lane P
6 25 99 Lane P < should be removed
7 25 66 Way P