|
|
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Как в Acces получить записи существующие в одной но отсутствующие в другой таблице. Так чтобы уникальность строки определялась по содержимому всех ее полей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 13:02:36 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
изучить язык SQL, особенное внимание обратить на слова Left/Right Join и Is Null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 13:11:26 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
То что ты говоришь я знаю, но для обьединения по одному полю, а мне надо по содержимому всех ее полей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 13:14:21 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
А что, джойн по одному полю сильно отличается от джойна по нескольким полям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 13:15:10 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Сильно, поскольку в таблице нет уникальных полей, есть только уникальные записи. Соответсвенно должно приниматься решение о уникальности всех полей в записи, и если такой записи не встречается она должна быть выбрана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 13:24:15 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Попробуйте (для тренировки) написать лефт джойн по двум полям. Потом по трем полям. Потом по четырем полям. Потом по всем полям. Потом мы поглядим, насколько же сильно эти джойны отличаются от джойна по одному полю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 13:28:15 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
как уже сказали выше, кто мешает то написать: Таблица1 Left Join Таблица2 On Выражение1 And Выражение2 And ... And ВыражениеN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 13:28:34 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Для тех, кто не смог справится с языком SQL - в аксесе есть мастер (визард) построения таких запросов. Называется "создать" -> "записи без подчиненных" Для тех, кто не справился с аксесовским мастером (визардом) - есть поиск по форуму. Который на слово Except выдает все что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 13:34:34 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Я не спорю что это невозможно, я говорю о том что у меня не получается этого сделать, поскольку 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 ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 13:43:38 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Если не трудно, и вы явно нашли то, что мне нужно, киньте пожалуйста ссылочку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 13:51:19 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
позвольте, зачем столько ON? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 13:52:19 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Всеравно запрос возвращает все записи, а не только те, которых нет в одной из таблиц. 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; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 14:42:12 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
........... where ........... is null AND ..... is null AND ...... is null попробуй -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 15:20:16 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
кто во что горазд... нафига сто раз на нулл проверять? (тем более таким бодунистическим способом, как у WILDALEX) он (SQL) в принципе не сможет по нулу сджойнить, если есть хоть один нулл, то все, приехали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 15:36:36 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Сджойнить? По моему уже сджойнили - left join ... on.... В данном случае нужна селекция по is null. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 15:40:24 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Iskander68 Сджойнить? По моему уже сджойнили - left join ... on.... В данном случае нужна селекция по is null. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.1 достаточноо селекции по одному Is Null. любому. потомушта если null есть где-то в одном из полей связи, то null и во всех остальных полях связи (относящихся к той же таблице). В ином виде null'ы в полях связи появиться не могут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 16:00:07 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Аригату, сэнсей.. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 16:02:21 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
ЛП Iskander68 Сджойнить? По моему уже сджойнили - left join ... on.... В данном случае нужна селекция по is null. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.1 достаточноо селекции по одному Is Null. любому. потомушта если null есть где-то в одном из полей связи, то null и во всех остальных полях связи (относящихся к той же таблице). В ином виде null'ы в полях связи появиться не могут. Ну тогда может объясните почему возвращаются все записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 16:13:01 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
как ,не выложив данные, можно надеяться на ответ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 16:21:29 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
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; возвращаются общие записи для обоих таблиц + новая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 16:34:14 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Наверное, должно быть стыдно признаться, но я когда-то давно в похожей ситуации изготовили из нескольких полей одну текстовую строку, соединив их "." и сравнивал с таким же фиктивным составным ключом в другой таблице. Хотя чего мне стыдиться, я же любитель... Должен быть и правильный метод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 17:03:42 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Да подсказали уже правильный метод: left join + is null... Только почему-то у всех работает, а у автора топика не работает. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 17:12:57 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
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; возвращаются общие записи для обоих таблиц + новая Что-то вы ДАРАГОЙ не договариваете. Тестовые данные давай - иначе не поверим! И для пущей уверенности базу сожми и ссылки проверь! Чудес не бывает (с) не мой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 17:16:42 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
[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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 17:54:33 |
|
||
|
[ACCES] - Аналог оператора EXCEPT?
|
|||
|---|---|---|---|
|
#18+
Iskander68 Да подсказали уже правильный метод: left join + is null... Только почему-то у всех работает, а у автора топика не работает. -- Regards Alexander Artamonov Posted via ActualForum NNTP Server 1.1 У меня работает, но с объединением по одному полю. Если у всех работает по многим полям приведите пример запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2004, 17:56:46 |
|
||
|
|

start [/forum/topic.php?fid=45&startmsg=32805600&tid=1670032]: |
0ms |
get settings: |
7ms |
get forum list: |
25ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
76ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 403ms |

| 0 / 0 |
