Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / поиск несовпадений в двух таблицах / 6 сообщений из 6, страница 1 из 1
17.09.2003, 08:39
    #32267191
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск несовпадений в двух таблицах
Здравствуйте!
У меня есть две таблицы:
в одной (назовем ее small_table)есть поле name. В нем находится обобщенное наименование детали: труба, фланец, гайка
в другой (big_table) есть также поле name. В нем находится развернутое наименование: труба сечением 15х15, фланец оцинкованный, болт шестигранный
Задача такова:
выбрать из таблицы big_table те записи, части которых не встречаются в таблице small_table
Для данного примера в результирующем запросе должна быть одна запись:
болт шестигранный, так как труба и фланец присутствуют в таблице small_table, а болт - нет.
Как это можно сделать по возможности средствами SQL-92? Если это нельзя - то как с SQL-ом аксесовским?
Заранее спасибо!
...
Рейтинг: 0 / 0
17.09.2003, 09:15
    #32267218
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск несовпадений в двух таблицах
SELECT Таблица2.nnnn, Min([nnnn] Like "*" & [mmmm] & "*") AS Выражение1
FROM Таблица1, Таблица2
GROUP BY Таблица2.nnnn
HAVING (((Min([nnnn] Like "*" & [mmmm] & "*"))=0));

Где Таблица1 выполняет роль SmallTable, Таблица 2 - BigTable.

Вот только работать такой запрос с большим объемом данных совсем не быстро будет.
...
Рейтинг: 0 / 0
17.09.2003, 09:29
    #32267229
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск несовпадений в двух таблицах
имеет смысл подумать о нормализации базы данных - таком виде никуда не годится.

- должна быть таблица элементы деталей с числовым уникальным индексом и кратким и полным описанием

- таблица собранные детали, содержащая параметры собранной детали
- таблица со связью один со стороны детали ко многим со стороны элементы содержащая список элементов собранной детали.

после получения подобной структуры базы данных не составит труда получить любую информацию элементарным и быстрым запросом.

а в результате любого запроса по нереляционным таблицам нет гарантии в верности результатов - вот пример : ТРУБА - TPУБA в первом случае все буквы кирилица во втором буквы TP A латиница + возможны грамматические ошибки.
...
Рейтинг: 0 / 0
17.09.2003, 09:44
    #32267246
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск несовпадений в двух таблицах
Просто таблица small_table содержится в одной базе данных, а таблица big_table - в другой. В таблице big_table содержится информация об элементах спецификации чертежа, поэтому нормализация не проходит (не моя база данных).
...
Рейтинг: 0 / 0
17.09.2003, 09:58
    #32267264
Павел Воронцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск несовпадений в двух таблицах
Код: plaintext
1.
2.
3.
4.
5.
 -- SQL 92
 
select *
from big_table a
where not exists (select  1  from small_table b where a.name like '%' || b.name || '%')
...
Рейтинг: 0 / 0
18.09.2003, 09:32
    #32268669
Shtock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
поиск несовпадений в двух таблицах
Спасибо за предложенные решения, все заработало! Тема закрыта.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / поиск несовпадений в двух таблицах / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]