У вас, кажется, есть несколько отдельных вопросов:
Непоследовательные имена адресов
Это будет трудно решить, просто не убеждая своих клиентов правильно вводить адрес каждый раз. Предоставление им отдельных полей (адресные строки 1/2, город, штат, почтовый индекс) поможет, так как он предложит им ввести весь адрес.
Кроме того, вы можете позволить им увидеть все задания, которые они установили, а затем выбрать, какие из них нужно удалить. Если они никогда не вводят адрес дважды, то они не могут ошибиться!
Удаление после установки
Вы не должны перезаписывать запись для клиента по определенному адресу, когда они решили удалить знак. Что делать, если они отменят удаление? Что, если они хотят, чтобы там был установлен еще один знак, и теперь вы не знаете, что вы уже работали на этом сайте раньше?
Вместо этого вы должны вставлять новую строку в базу данных для каждого события.
Поиск установок, которые еще не удалены
Немного неясно, что id
это значит - однозначно ли это идентифицировать каждую отдельную строку, или каждая работа имеет свои собственные id
?
Я пойду вперед и предполагаю, что каждая работа имеет свои собственные id
.
Поскольку MySQL не может сделать WHERE NOT IN
, вам нужно будет сделать SELECT signs.id, signs.address FROM signs WHERE signs.type_of_work = 'INSTALLATION' AND signs.id NOT IN ( SELECT signs2.id FROM signs2 WHERE signs2.type_of_work = 'REMOVAL' )
запрос:
id
(простите мой стиль, я больше привык к Postgres ...)
Это должно выбрать идентификатор и адрес каждой рабочей шляпы, где есть работа по установке, если только эта работа не id
связана с работой по удалению.