Главная страница
    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.092 c
6-1134505291
(CHALING 32)S K i N E R
2005-12-13 23:21
2006.03.26
Сетевой чат!(Локальный)


2-1141723301
Nsk3D
2006-03-07 12:21
2006.03.26
DLL


2-1141920953
Nirvana
2006-03-09 19:15
2006.03.26
Вопрос о переносе слов в


1-1140345293
Pavel__
2006-02-19 13:34
2006.03.26
Странное поведение memprof


1-1140433457
Asker
2006-02-20 14:04
2006.03.26
Артефакты в TreeView





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский