Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / оператор exists / 14 сообщений из 14, страница 1 из 1
24.05.2016, 09:42
    #39241899
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Приветствую
Я пытаюсь сделать запрос в БД, который выдаст мне разницу между двумя таблицами где одно поле совпадает, а два других разняться. В чем косяк? или лучше это дело джойнами сделать?



SELECT Basa_KL.kod, Basa_KL.Instr_id, Basa_KL.punkt
FROM Basa_KL
WHERE EXISTS (SELECT Sravnenie_Basa_KL.kod, Sravnenie_Basa_KL.Instr_id, Sravnenie_Basa_KL.punkt FROM sravnenie_Basa_KL WHERE Basa_KL.kod=sravnenie_Basa_KL.kod and Basa_KL.Instr_id<>[sravnenie_Basa_KL].[Instr_id] and Basa_KL.punkt<>[sravnenie_Basa_KL].[punkt])
...
Рейтинг: 0 / 0
24.05.2016, 09:51
    #39241904
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Retvisanили лучше это дело джойнами сделать?Лучше. Во всяком случае нагляднее, логика сразу видна.
...
Рейтинг: 0 / 0
24.05.2016, 10:04
    #39241915
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Akina,

а как сделать RIGHT OUTER JOIN в access?
...
Рейтинг: 0 / 0
24.05.2016, 10:06
    #39241919
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Попробуйте СТРОГО сформулировать ЗАДАЧУ.
...
Рейтинг: 0 / 0
24.05.2016, 10:11
    #39241927
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Akina,

есть две таблицы, в них три столбца. Мне нужно выбрать из них те которые есть в одной, но нет в другой, но не просто разницу, а по определенному фильтру где одно зачение будет совпадать, а два других отличаться. Так ясно?
...
Рейтинг: 0 / 0
24.05.2016, 10:19
    #39241937
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
RetvisanТак ясно?Не до конца.
Необходимо выбрать только те записи, что есть в первой таблице, но отсутствуют во второй? или и наоборот тоже?
А если первое и второе поля равны, а третье нет - эта запись должна попасть в выходной набор или нет?
...
Рейтинг: 0 / 0
24.05.2016, 10:23
    #39241942
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Akina,


AkinaНеобходимо выбрать только те записи, что есть в первой таблице, но отсутствуют во второй? или и наоборот тоже?
наборот не надо)

AkinaА если первое и второе поля равны, а третье нет - эта запись должна попасть в выходной набор или нет?
да, должна
...
Рейтинг: 0 / 0
24.05.2016, 10:44
    #39241962
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Ну тогда наверное тупо
Код: vbnet
1.
2.
3.
4.
SELECT t1.*
FROM t1 
LEFT JOIN t1 ON t1.f1=t2.f1 AND t1.f2=t2.f2 AND t1.f3=t2.f3
WHERE t2.f1 IS NULL
...
Рейтинг: 0 / 0
24.05.2016, 10:45
    #39241965
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Пардон,
Код: vbnet
1.
LEFT JOIN t2
...
Рейтинг: 0 / 0
24.05.2016, 10:52
    #39241973
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Akina,

авторAND t1.f2=t2.f2 AND t1.f3=t2.f3

мб нужно так?
AND t1.f2<>t2.f2 AND t1.f3<>t2.f3
...
Рейтинг: 0 / 0
24.05.2016, 11:43
    #39242033
оператор exists
Retvisan, запрос правильный при условии, что в полях нет Null.
Он у вас вообще не работает или выдает не то, что хочется?
...
Рейтинг: 0 / 0
24.05.2016, 12:15
    #39242076
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Retvisanмб нужно так? обоснуй.
...
Рейтинг: 0 / 0
24.05.2016, 12:22
    #39242086
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Akina,

SELECT DISTINCT Basa_KL.*
FROM Basa_KL LEFT JOIN sravnenie_Basa_KL ON sravnenie_Basa_KL.kod = Basa_KL.kod
WHERE Basa_KL.Instr_id NOT IN (SELECT sravnenie_Basa_KL.Instr_id FROM sravnenie_Basa_KL) or
Basa_KL.punkt NOT IN (SELECT sravnenie_Basa_KL.punkt FROM sravnenie_Basa_KL);



вот что получилось, работает
пришлось поставить DISTINCT иначе выдает дубликаты
...
Рейтинг: 0 / 0
24.05.2016, 12:25
    #39242090
Retvisan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оператор exists
Анатолий ( Киев ),

выдавал не то что хочется)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / оператор exists / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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