Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сверка таблиц по вхождению  [new]
ist__0
Member

Откуда:
Сообщений: 1
Добрый вечер. Господа эксперты, подскажите новичку как организуются на sql запросы на сверку таблиц по вхождению.
Есть таблица адресов - длинные строки в одном столбце - регион, район, город, улица, номер дома. И есть таблицы регионов, районов и нас пунктов. Как проверить содержится ли в строке адреса, таблицы с адресами, корректное наименование региона (и проч) из таблицы регионов?
21 янв 18, 01:48    [21123900]     Ответить | Цитировать Сообщить модератору
 Re: Сверка таблиц по вхождению  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30800
ist__0
Добрый вечер. Господа эксперты, подскажите новичку как организуются на sql запросы на сверку таблиц по вхождению.
Есть таблица адресов - длинные строки в одном столбце - регион, район, город, улица, номер дома. И есть таблицы регионов, районов и нас пунктов. Как проверить содержится ли в строке адреса, таблицы с адресами, корректное наименование региона (и проч) из таблицы регионов?
Обычно в sql данные хранятся в нормализованном виде, то есть, например, таблица адресов содержит идентификаторы записей на таблицу нас пунктов, таблица нас пунктов содержит идентификаторы записей на таблицу районов и т.д.
Или, например, таблица заказов содержит идентификатор заказчика, а не ФИО прямо в описании заказа, которую нужно выковыривать и искать.
Это называется нормализация, это, так сказать, основы реляционных баз данных.
Подробнее можете почитать и обсудить в разделе "Проектирование БД", ну и прочитайте какую нибудь книжку.
21 янв 18, 11:05    [21124109]     Ответить | Цитировать Сообщить модератору
 Re: Сверка таблиц по вхождению  [new]
aleks222
Guest
Это depends on...

Фсе зависит от "чаво ты хочешь в конце-концов?"

Если так, "ну чаво-нибудь выйдет и ладно":
-- Усе адреса, хде нет "правильного названия региона". 
-- Но сам понимаешь - это не гарантирует, что в остальных адресах "название региона - правильное"
-- ибо название региона может совпадать с названием чего угодно - улицы, города...
select t.* 
  from [таблица адресов] as t
         left outer join  [таблица регионов] as r on charindex( r.регион, t.адрес ) > 0 
  where r.регион is null
21 янв 18, 11:07    [21124113]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить