Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выборка из 2х таблиц, найти не равные строки... / 15 сообщений из 15, страница 1 из 1
25.11.2015, 13:28
    #39113080
f50
f50
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
Коллеги, помогите, что то не могу запрос придумать..
задача простая, есть 2 таблицы, t1, t2. В каждой столбик c1,c2,c3. В каждой записи. Надо найти записи которых нет в двух таблицах.
например t1:
c1c2c3111222121

t2:
c1c2c3111222221

В результате хотелось бы получить результат:
c1c2c3121221

Можно в выборку добавить ещё столбец, для обозначения таблицы:
tc1c2c3t1121t2221

вот такая задачка... был бы 1 столбик, проблем нет, NOT IN (SELECT...) и всё... а тут что то не получается самому...
...
Рейтинг: 0 / 0
25.11.2015, 13:49
    #39113103
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
f50, как вариант:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT c1,c2,c3, First(t) as nametable FROM(
SELECT c1, c2, c3, "t1" as t FROM t1
UNION ALL 
SELECT c1, c2, c3, "t2" as t FROM t2)
GROUP BY c1,c2,c3
HAVING COUNT(*)=1
...
Рейтинг: 0 / 0
25.11.2015, 14:07
    #39113130
f50
f50
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
Agapov_stas, отличный вариант!!! Спасибо, работает как надо!!! Самые наилучшие пожелания вам!
...
Рейтинг: 0 / 0
25.11.2015, 14:20
    #39113146
Выборка из 2х таблиц, найти не равные строки...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT 't1' as t, t1.c1, t1.c2, t1.c3 from t1
left  join t2  on
                 t1.c1=t2.c2 and
                 t1.c2=t2.c2 and
                 t1.c3=t2.c3
where t2.c1 is null
UNION all
SELECT 't2', t2.c1, t2.c2, t2.c3 from t2
left  join t1  on
                 t1.c1=t2.c2 and
                 t1.c2=t2.c2 and
                 t1.c3=t2.c3
where t1.c1 is null;
...
Рейтинг: 0 / 0
25.11.2015, 14:35
    #39113161
cxzvb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
f50Agapov_stas, отличный вариант!!!
Если в отдельно взятых таблицах возможно дублирование записей, то запрос может дать неверный результат.
...
Рейтинг: 0 / 0
25.11.2015, 14:38
    #39113165
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
cxzvbЕсли в отдельно взятых таблицах возможно дублирование записей, то запрос может дать неверный результат.
Не понял немного. Можно подробнее, мне на заметку?
Спасибо.
...
Рейтинг: 0 / 0
25.11.2015, 14:44
    #39113174
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
cxzvb , а, теперь понял..Выходит, оба варианта не так уж и подходят ТС-у.
...
Рейтинг: 0 / 0
25.11.2015, 14:46
    #39113177
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
Так неверное тогда..
Код: sql
1.
2.
3.
4.
5.
6.
SELECT c1,c2,c3, First(t) as nametable FROM(
SELECT DISTINCT c1, c2, c3, "t1" as t FROM t1
UNION ALL 
SELECT DISTINCT c1, c2, c3, "t2" as t FROM t2)
GROUP BY c1,c2,c3
HAVING COUNT(*)=1
...
Рейтинг: 0 / 0
25.11.2015, 14:51
    #39113184
cxzvb
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
Agapov_stasНе понял немного.
Например, добавьте в таблицу t1 четвертую запись, дублирующую третью, и посмотрите результат запроса.
...
Рейтинг: 0 / 0
25.11.2015, 14:56
    #39113188
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
cxzvbНапример, добавьте в таблицу t1 четвертую запись, дублирующую третью, и посмотрите результат запроса.
Да это я понял, больше не понял фразу "Если в отдельно взятых таблицах".
Вы правы.
...
Рейтинг: 0 / 0
25.11.2015, 14:57
    #39113190
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
cxzvbAgapov_stasНе понял немного.
Например, добавьте в таблицу t1 четвертую запись, дублирующую третью, и посмотрите результат запроса.Во втором варианте 18470919 , если нет различения записей по ключу, спасает DISTINCT.
...
Рейтинг: 0 / 0
25.11.2015, 16:29
    #39113335
Выборка из 2х таблиц, найти не равные строки...
Во втором варианте 18470919, если нет различения записей по ключу, спасает DISTINCT.
или юнион без олл?
...
Рейтинг: 0 / 0
25.11.2015, 16:50
    #39113366
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
Как вариантВо втором варианте 18470919, если нет различения записей по ключу, спасает DISTINCT.
или юнион без олл?Исключит ли это дубликаты, принадлежащие одной таблице?
Что-то затрудняюсь...
Проверить сейчас не на чем...
Описание "По умолчанию записи, повторяющиеся в объединяемых таблицах и запросах, не включаются в результирующее множество запроса. Использование предиката ALL в запросе позволяет включить все записи." в этом смысле, мне кажется, можно понимать по-разному.
...
Рейтинг: 0 / 0
27.11.2015, 10:35
    #39114660
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
__MichelleКак вариантпропущено...

или юнион без олл?Исключит ли это дубликаты, принадлежащие одной таблице?Наконец-то проверила. Да. Исключит.
...
Рейтинг: 0 / 0
27.11.2015, 12:28
    #39114798
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка из 2х таблиц, найти не равные строки...
Взял на заметку...
По умолчанию повторяющиеся записи при использовании операции UNION не возвращаются, однако включение в инструкцию предиката ALL обеспечивает возврат всех записей.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Выборка из 2х таблиц, найти не равные строки... / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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