Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / [ACCES] - Аналог оператора EXCEPT? / 25 сообщений из 33, страница 1 из 2
30.11.2004, 13:02:36
    #32805600
WILDALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
Как в Acces получить записи существующие в одной но отсутствующие в другой таблице. Так чтобы уникальность строки определялась по содержимому всех ее полей?
...
Рейтинг: 0 / 0
30.11.2004, 13:11:26
    #32805620
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
изучить язык SQL, особенное внимание обратить на слова Left/Right Join и Is Null
...
Рейтинг: 0 / 0
30.11.2004, 13:14:21
    #32805631
WILDALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
То что ты говоришь я знаю, но для обьединения по одному полю, а мне надо по содержимому всех ее полей
...
Рейтинг: 0 / 0
30.11.2004, 13:15:10
    #32805633
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
А что, джойн по одному полю сильно отличается от джойна по нескольким полям?
...
Рейтинг: 0 / 0
30.11.2004, 13:24:15
    #32805660
WILDALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
Сильно, поскольку в таблице нет уникальных полей, есть только уникальные записи. Соответсвенно должно приниматься решение о уникальности всех полей в записи, и если такой записи не встречается она должна быть выбрана.
...
Рейтинг: 0 / 0
30.11.2004, 13:28:15
    #32805676
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
Попробуйте (для тренировки) написать лефт джойн по двум полям. Потом по трем полям. Потом по четырем полям. Потом по всем полям.
Потом мы поглядим, насколько же сильно эти джойны отличаются от джойна по одному полю.
...
Рейтинг: 0 / 0
30.11.2004, 13:28:34
    #32805678
Lenivec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
как уже сказали выше, кто мешает то написать:
Таблица1 Left Join Таблица2 On Выражение1 And Выражение2 And ... And ВыражениеN
...
Рейтинг: 0 / 0
30.11.2004, 13:34:34
    #32805692
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
Для тех, кто не смог справится с языком SQL - в аксесе есть мастер (визард) построения таких запросов. Называется "создать" -> "записи без подчиненных"
Для тех, кто не справился с аксесовским мастером (визардом) - есть поиск по форуму. Который на слово Except выдает все что нужно.
...
Рейтинг: 0 / 0
30.11.2004, 13:43:38
    #32805713
WILDALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
Я не спорю что это невозможно, я говорю о том что у меня не получается этого сделать, поскольку 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
30.11.2004, 13:51:19
    #32805737
WILDALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
Если не трудно, и вы явно нашли то, что мне нужно, киньте пожалуйста ссылочку.
...
Рейтинг: 0 / 0
30.11.2004, 13:52:19
    #32805739
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
позвольте, зачем столько ON?
...
Рейтинг: 0 / 0
30.11.2004, 14:42:12
    #32805884
WILDALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
Всеравно запрос возвращает все записи, а не только те, которых нет в одной из таблиц.

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
30.11.2004, 15:20:16
    #32805983
Iskander68
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
...........
where ........... is null AND ..... is null AND ...... is null попробуй

--
Regards
Alexander Artamonov

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

--
Regards
Alexander Artamonov

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

--
Regards
Alexander Artamonov

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

--
Regards
Alexander Artamonov

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

--
Regards
Alexander Artamonov

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

Ну тогда может объясните почему возвращаются все записи?
...
Рейтинг: 0 / 0
30.11.2004, 16:21:29
    #32806133
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
как ,не выложив данные, можно надеяться на ответ ?
...
Рейтинг: 0 / 0
30.11.2004, 16:34:14
    #32806163
WILDALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
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
30.11.2004, 17:03:42
    #32806258
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
Наверное, должно быть стыдно признаться, но я когда-то давно в похожей ситуации изготовили из нескольких полей одну текстовую строку, соединив их "." и сравнивал с таким же фиктивным составным ключом в другой таблице.
Хотя чего мне стыдиться, я же любитель...

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

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
30.11.2004, 17:16:42
    #32806303
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
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
30.11.2004, 17:54:33
    #32806415
WILDALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
[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
30.11.2004, 17:56:46
    #32806422
WILDALEX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[ACCES] - Аналог оператора EXCEPT?
Iskander68
Да подсказали уже правильный метод: left join + is null... Только почему-то
у всех работает, а у автора топика не работает.

--
Regards
Alexander Artamonov

Posted via ActualForum NNTP Server 1.1
У меня работает, но с объединением по одному полю. Если у всех работает по многим полям приведите пример запроса.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / [ACCES] - Аналог оператора EXCEPT? / 25 сообщений из 33, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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