Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

Как сравнить две таблицы   Найти похожие ветки 

 
R.O.O.T ©   (2006-03-07 09:54) [0]

Господа подскажите у меня есть две таблицы. как сравнить данные в них т.е. какие записи несовпадают те выбрать и передать в третью таблицу


 
stone ©   (2006-03-07 10:01) [1]

что значит не совпадают?
по каким полям? по ключевым или вообще?


 
r.o.o.t ©   (2006-03-07 10:35) [2]

ну по двум трем полям


 
Anatoly Podgoretsky ©   (2006-03-07 10:36) [3]

WHERE


 
r.o.o.t ©   (2006-03-07 10:42) [4]

непонятно
допустим есть поле 1 и поле 2 в разных таблицах в которых хранятся идентичные данные допустим я в поле 2 добавлю 10 записаей как мне запросом вычислит разность т.е. эти 10 записей и переписать их в поле 1


 
Fay ©   (2006-03-07 10:43) [5]

СУБД, конечно, DB2?


 
r.o.o.t ©   (2006-03-07 10:43) [6]

Access


 
Fay ©   (2006-03-07 10:47) [7]

Значит можно одним запросом.


 
r.o.o.t ©   (2006-03-07 10:48) [8]

я понимаю что можно а вот чето неполучается  подскажите плиз


 
stone ©   (2006-03-07 10:50) [9]


> r.o.o.t ©   (07.03.06 10:42) [4]
> непонятно
> допустим есть поле 1 и поле 2 в разных таблицах в которых
> хранятся идентичные данные допустим я в поле 2 добавлю 10
> записаей как мне запросом вычислит разность т.е. эти 10
> записей и переписать их в поле 1

Для начала неплохо бы изучить теорию БД, чтобы понять чем поле отличается от записи. Ну и основы SQL не помешают.


 
r.o.o.t ©   (2006-03-07 10:57) [10]

все читал книгу Мартина Грубера но непойму как посторить запрос чтобы сравнить два поля в разных таблицах и выбрать разницу(в записях) в данных между этими полями


 
evvcom ©   (2006-03-07 11:03) [11]

В стандарте SQL (92 вроде, может и раньше?) я нашел такой UNION JOIN. Как раз то, что надо, только вот ни в одной из СУБД, с какими хоть мал мальски работал, этого не реализовали. Тогда остается только
... full join ... minus ... inner join ...


 
r.o.o.t ©   (2006-03-07 11:03) [12]

а попдробнее можно ??? плиз


 
sniknik ©   (2006-03-07 11:12) [13]

несовпадающее по одной таблице (по второй аналогично. можно соеденить по union в один, только придется в подзапросе если запись делать)

SELECT t1.*  INTO Table3 FROM Table1 t1 LEFT JOIN Table2 t2 ON t1.Field1=t2.Field1 WHERE t2.Field1 IS NULL

но вообще, множество идентичных таблиц наводит на мысль о неправильно построенной базе.


 
sniknik ©   (2006-03-07 11:19) [14]

evvcom ©   (07.03.06 11:03) [11]
> full join ... minus
в аккессе такого синтаксиса нет.

r.o.o.t ©   (07.03.06 11:03) [12]
> а попдробнее можно ??? плиз
подробнее в справке по используемому движку. а в "общем" он тебе такого насоветует... (и все будет правдой, но относится к различным, а не твоему, "sql-ям")


 
Sergey13 ©   (2006-03-07 11:25) [15]

Exists будет достаточно. Точнее Not Exists.


 
msguns ©   (2006-03-07 11:44) [16]

1. Переписать в 3-ю таблицу все записи 1-й и 2-й таблиц
2. Удалить из 3-й таблице те записи, ключи которой имеются в 1-й и 2-й.

ЗЫ. Сама задача откровенно пованивает инвалидностью модели БД. (см. [13]


 
r.o.o.t ©   (2006-03-07 13:35) [17]

ну инвалидностью непахнет просто у меня есть локальная бд в которой пользователь делал определенную работу и мне нужно данные которые он наработал сбросить на сервер БД трехзвенка. вот поэто я и думаю как лучше мне посторить алгоритм по которому можно вычеслить что есть на сервере а что есть на стороне клиента. Клиент работает в offline и неможет постоянно держать conect  с сервером


 
sniknik ©   (2006-03-07 14:10) [18]

> как лучше мне посторить алгоритм
на начало работы дававай пустую таблицу тогда ВСЕ что там будет при сохранении будет новым... и ничего вычислять не надо. после сохранения ощищать. + добавь уникальный номер к этим "пакетам" на изменение, и будет аналог документа. можно вести историю, исправлять...


 
Sergey13 ©   (2006-03-07 16:09) [19]

2[18] sniknik ©   (07.03.06 14:10)
>> как лучше мне посторить алгоритм
>на начало работы дававай пустую таблицу тогда ВСЕ что там будет при сохранении будет новым
Или вновь веденным старым. 8-)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.043 c
1-1140478735
kilop
2006-02-21 02:38
2006.03.26
Интерпретатор Pascal на Delphi


15-1141227189
Ariman
2006-03-01 18:33
2006.03.26
Трудоустройство иностранцев в России


3-1139147979
OldNick
2006-02-05 16:59
2006.03.26
Удаленные записи в paradox


4-1136631724
Igor_thief
2006-01-07 14:02
2006.03.26
Системный курсор


2-1141673191
MaSZ
2006-03-06 22:26
2006.03.26
Создание папки из программы.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский