powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / [ACCES] - Аналог оператора EXCEPT?
33 сообщений из 33, показаны все 2 страниц
[ACCES] - Аналог оператора EXCEPT?
    #32805600
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как в Acces получить записи существующие в одной но отсутствующие в другой таблице. Так чтобы уникальность строки определялась по содержимому всех ее полей?
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805620
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
изучить язык SQL, особенное внимание обратить на слова Left/Right Join и Is Null
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805631
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То что ты говоришь я знаю, но для обьединения по одному полю, а мне надо по содержимому всех ее полей
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805633
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, джойн по одному полю сильно отличается от джойна по нескольким полям?
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805660
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сильно, поскольку в таблице нет уникальных полей, есть только уникальные записи. Соответсвенно должно приниматься решение о уникальности всех полей в записи, и если такой записи не встречается она должна быть выбрана.
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805676
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте (для тренировки) написать лефт джойн по двум полям. Потом по трем полям. Потом по четырем полям. Потом по всем полям.
Потом мы поглядим, насколько же сильно эти джойны отличаются от джойна по одному полю.
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805678
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как уже сказали выше, кто мешает то написать:
Таблица1 Left Join Таблица2 On Выражение1 And Выражение2 And ... And ВыражениеN
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805692
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для тех, кто не смог справится с языком SQL - в аксесе есть мастер (визард) построения таких запросов. Называется "создать" -> "записи без подчиненных"
Для тех, кто не справился с аксесовским мастером (визардом) - есть поиск по форуму. Который на слово Except выдает все что нужно.
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805713
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не спорю что это невозможно, я говорю о том что у меня не получается этого сделать, поскольку ACCES говорит о двусмысленности выражения, или об отсутсвии оператора. В чем может быть ошибка?

SELECT DISTINCTROW Copulation.*
FROM Copulation LEFT JOIN Copulation_Far
ON Copulation.ID = Copulation_Far.ID AND
ON Copulation.ID_AM = Copulation_Far.ID_AM AND
ON Copulation.Year = Copulation_Far.Year ;
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805737
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не трудно, и вы явно нашли то, что мне нужно, киньте пожалуйста ссылочку.
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805739
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
позвольте, зачем столько ON?
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805884
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всеравно запрос возвращает все записи, а не только те, которых нет в одной из таблиц.

SELECT DISTINCTROW Copulation.*
FROM Copulation LEFT JOIN Copulation_Far ON (Copulation.Data=Copulation_Far.Data) AND (Copulation.Year=Copulation_Far.Year) AND (Copulation.ID_AM=Copulation_Far.ID_AM) AND (Copulation.ID=Copulation_Far.ID)
WHERE ((Copulation_Far.ID) AND (Copulation_Far.ID_AM) AND (Copulation_Far.Year) AND (Copulation_Far.Data)) Is Null;
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32805983
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...........
where ........... is null AND ..... is null AND ...... is null попробуй

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806023
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кто во что горазд...
нафига сто раз на нулл проверять?
(тем более таким бодунистическим способом, как у WILDALEX)
он (SQL) в принципе не сможет по нулу сджойнить, если есть хоть один нулл, то все, приехали.
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806031
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сджойнить? По моему уже сджойнили - left join ... on.... В данном случае
нужна селекция по is null.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806081
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iskander68
Сджойнить? По моему уже сджойнили - left join ... on.... В данном случае
нужна селекция по is null.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
достаточноо селекции по одному Is Null. любому. потомушта если null есть где-то в одном из полей связи, то null и во всех остальных полях связи (относящихся к той же таблице). В ином виде null'ы в полях связи появиться не могут.
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806084
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аригату, сэнсей..

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806106
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛП Iskander68
Сджойнить? По моему уже сджойнили - left join ... on.... В данном случае
нужна селекция по is null.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
достаточноо селекции по одному Is Null. любому. потомушта если null есть где-то в одном из полей связи, то null и во всех остальных полях связи (относящихся к той же таблице). В ином виде null'ы в полях связи появиться не могут.

Ну тогда может объясните почему возвращаются все записи?
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806133
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как ,не выложив данные, можно надеяться на ответ ?
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806163
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shuhardкак ,не выложив данные, можно надеяться на ответ ?
Зачем данные выкладывать? Сравниваются две идентичные таблицы, в одной из которых добавлена запись отличная от остальных (это образец)
и при попытке выполнить запрос

SELECT DISTINCTROW Copulation.*
FROM Copulation LEFT JOIN Copulation_Far ON (Copulation.Data=Copulation_Far.Data) AND (Copulation.Year=Copulation_Far.Year) AND (Copulation.ID_AM=Copulation_Far.ID_AM) AND (Copulation.ID=Copulation_Far.ID)
WHERE Copulation_Far.ID Is Null;

возвращаются общие записи для обоих таблиц + новая
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806258
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное, должно быть стыдно признаться, но я когда-то давно в похожей ситуации изготовили из нескольких полей одну текстовую строку, соединив их "." и сравнивал с таким же фиктивным составным ключом в другой таблице.
Хотя чего мне стыдиться, я же любитель...

Должен быть и правильный метод.
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806283
Iskander68
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да подсказали уже правильный метод: left join + is null... Только почему-то
у всех работает, а у автора топика не работает.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806303
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WILDALEX Shuhardкак ,не выложив данные, можно надеяться на ответ ?
Зачем данные выкладывать? Сравниваются две идентичные таблицы, в одной из которых добавлена запись отличная от остальных (это образец)
и при попытке выполнить запрос

SELECT DISTINCTROW Copulation.*
FROM Copulation LEFT JOIN Copulation_Far ON (Copulation.Data=Copulation_Far.Data) AND (Copulation.Year=Copulation_Far.Year) AND (Copulation.ID_AM=Copulation_Far.ID_AM) AND (Copulation.ID=Copulation_Far.ID)
WHERE Copulation_Far.ID Is Null;

возвращаются общие записи для обоих таблиц + новая
Что-то вы ДАРАГОЙ не договариваете.
Тестовые данные давай - иначе не поверим!

И для пущей уверенности базу сожми и ссылки проверь!

Чудес не бывает (с) не мой
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806415
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[Copulation_Far.*]
ID ID_AM Year RS Data Time Start Time Finish Total CL FLAC
BLBr237nnnnn 2004 Br 20/06/2004
BPTRBr90B090B090G 2004 Br 15/06/2004
BLLr385nnnnn 2004 P 25/06/2004
BLP282nnnnn 2004 P 24/06/2004
BPTRP31P031P031B 2004 P 23/06/2004
BPTRP36P036P036B 2004 P 14/06/2004
BLP487nnnnn 2004 P 27/06/2004
BLLr300nnnnn 2004 P 03/06/2004
BLLr300nnnnn 2004 P 04/06/2004
BPTRP25P025P025B 2004 P 25/06/2004 16:01:00
BPTRP25P025P025B 2004 P 26/06/2004 11:53:00
BLY379nnnnn 2004 Y 15/06/2004

[Copulation.*]
ID ID_AM Year RS Data Time Start Time Finish Total CL FLAC
BLBr237nnnnn 2004 Br 20/06/2004
BLLr125nnnnn 2004 Lr 24/06/2004
BLLr130nnnnn 2004 Lr 27/06/2004
BLLr209nnnnn 2004 Lr 20/06/2004
BLLr265nnnnn 2004 Lr 17/06/2004
BLLr300nnnnn 2004 P 03/06/2004
BLLr300nnnnn 2004 P 04/06/2004
BLLr369nnnnn 2004 Lr 28/06/2004
BLLr385nnnnn 2004 P 25/06/2004
BLLr400nnnnn 2004 Lr 21/06/2004
BLP282nnnnn 2004 P 24/06/2004
BLP487nnnnn 2004 P 27/06/2004
BLP515nnnnn A32 2004 Lr 30/06/2004
BLP539nnnnn 2004 Lr 28/06/2004
BLP569nnnnn 2004 Lr 01/07/2004
BLY379nnnnn 2004 Y 15/06/2004
BPTLLr453n453n453W 2004 Lr 27/06/2004
BPTLP639n639n639W 2004 Lr 28/06/2004
BPTRBr90B090B090G 2004 Br 15/06/2004
BPTRP25P025P025B 2004 P 25/06/2004 16:01:00
BPTRP25P025P025B 2004 P 26/06/2004 11:53:00
BPTRP31P031P031B 2004 P 23/06/2004
BPTRP36P036P036B 2004 P 14/06/2004
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806422
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Iskander68
Да подсказали уже правильный метод: left join + is null... Только почему-то
у всех работает, а у автора топика не работает.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
У меня работает, но с объединением по одному полю. Если у всех работает по многим полям приведите пример запроса.
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806502
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вах - mdb в архиве - руками бить зателепаемся
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806521
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно дело в пустых полях?
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806578
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конкретно по этим 4 полям Copulation.ID, Copulation.ID_AM, Copulation.Year, Copulation.RS связывать нельзя, так как они НЕ УНИКАЛЬНЫ для таблицы Copulation.
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806608
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще в таблице нет уникальных полей, но совокупность их встречается один раз.
UNION же как-то проверяет по всем полям в строке.
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806645
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а чем не годиться поле ,склеенное из 4-х(согласен с программист-любителем)?
я часто в списках многие ко многим применяю.
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806714
WILDALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shuhardа чем не годиться поле ,склеенное из 4-х(согласен с программист-любителем)?
я часто в списках многие ко многим применяю.

По ходу это единственное, что будет работать
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806904
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист-ЛюбительКонкретно по этим 4 полям Copulation.ID, Copulation.ID_AM, Copulation.Year, Copulation.RS связывать нельзя, так как они НЕ УНИКАЛЬНЫ для таблицы Copulation.
Вот этого не понял?
Ну не уникальны!
А почему связывать нельзя? Акса позволит так сделать.
Или речь о чем-то не связанным с техническими возможностями ПО идет?
...
Рейтинг: 0 / 0
[ACCES] - Аналог оператора EXCEPT?
    #32806914
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT DISTINCTROW Copulation.*
FROM Copulation LEFT JOIN Copulation_Far ON (Copulation.ID=Copulation_Far.ID) AND (nz(Copulation.ID_AM,'')=nz(Copulation_Far.ID_AM,'')) AND (Copulation.Year=Copulation_Far.Year) AND (Copulation.RS=Copulation_Far.RS)
WHERE Copulation_Far.ID Is Null;

Это - типа
Copulation.ID_AM = Copulation_Far.ID_AM при обеих = Null даст false и такие поля не свяжутся, следовательно в правой таблице связей не будет!!!
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / [ACCES] - Аналог оператора EXCEPT?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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