Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / sravnenie 2 tablitsi s odinokovim strukturami / 14 сообщений из 14, страница 1 из 1
18.01.2006, 16:15
    #33489803
n1m2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
Kak mojno sravnit 2 tablitsu s odinokovim strukturami. V pervom tablitse 1 zapis, 2-m mnoqo. Nado nayti tochnoqo sovpodenie v vtorom tablitse. Vo 2-m tablitse yest li takoy zapis kak na 1-m tablitse.
...
Рейтинг: 0 / 0
18.01.2006, 16:25
    #33489846
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
См. SELECT - SQL
...
Рейтинг: 0 / 0
18.01.2006, 19:54
    #33490345
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
Код: plaintext
1.
2.
3.
4.
5.
6.
select cnt(*) from table_mnogo into array _cnt
select * from table_mnogo union select * from table_odin
if _tally<>_cnt
 ?'Нет такой записи'
else
 ?'Есть такая запись'
endif
...
Рейтинг: 0 / 0
19.01.2006, 07:44
    #33490654
n1m2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
A kak nayti imenno eti sovpadayushiyi zapisi.
...
Рейтинг: 0 / 0
19.01.2006, 10:35
    #33490987
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
Если связь именно один-ко-многим, т.е. в первой таблице неозможны дубли, то

Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT * FROM tab2 ;
INNER JOIN tab1 ON tab2.Field1=tab1.Field1 ;
	AND tab2.Field2=tab1.Field2 ;
	AND tab2.Field3=tab1.Field3 ;
	AND tab2.Field4=tab1.Field4 ;
	...

Если связь вида много-ко-многим, т.е. в первой таблице возможны дубли, то

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT * FROM tab2 ;
WHERE EXISTS(SELECT * FROM tab1
		WHERE tab2.Field1=tab1.Field1 ;
		AND tab2.Field2=tab1.Field2 ;
		AND tab2.Field3=tab1.Field3 ;
		AND tab2.Field4=tab1.Field4 ;
		...)

В условиях надо перечислить все поля, по которым происходит сравнение (поиск совпадающих записей). Если таблицы имеют уникальные идентификаторы записей, то достаточно в условиях сравнения указать только их.
...
Рейтинг: 0 / 0
19.01.2006, 11:06
    #33491116
n1m2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
U menya 48 poley nado sravnit. Ya dumal chto mojno kak to po druqomu.
A skolko and mojno postavit?
...
Рейтинг: 0 / 0
19.01.2006, 11:31
    #33491220
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
n1m2U menya 48 poley nado sravnit. Ya dumal chto mojno kak to po druqomu.
Без ключевого поля придется перечислять все 48 полей. Не проблема написать цикл и сделать через макроподстановку.

n1m2A skolko and mojno postavit?
Почитай HELP по настройке SYS(3055).

Ограничение накладывается не на количество условий, а на некоторую "сложность" условия. Если с 48 условиями не пройдет, то поиграйся настройкой SYS(3055)
...
Рейтинг: 0 / 0
19.01.2006, 15:07
    #33492085
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
Если полей много, а различия могут быть в любом, и надо найти конкретную
запись во 2 таблице, то проще все сделать SCANом, чем придумывать SELECT.
...
Рейтинг: 0 / 0
20.01.2006, 01:13
    #33493152
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
Hi AndreTM!

Однако количество AND от этого не уменьшится, а вот скорость может и
снизится (смотря как написать конечно, и ЧТО именно надо найти - только
первую из отличающихся или их все).

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
20.01.2006, 18:39
    #33495076
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
Как один из вариантов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select table_odin
scatter to t_odin
select table_mnogo
scan
 scatter to t_mnogo
 if t_mnogo==t_odin
  exit
 endif 
endscan
if !eof()
 ...
...
Рейтинг: 0 / 0
21.01.2006, 12:34
    #33495491
n1m2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
Nado nayti vse sovpodayushie zapisi.
...
Рейтинг: 0 / 0
22.01.2006, 18:15
    #33496174
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
Ну так там, где exit - это запись найдена, вот и делай, что надо.
И тогда выглядеть будет так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select table_odin
scatter to t_odin
select table_mnogo
IsRec=.f.
scan
 scatter to t_mnogo
 if t_mnogo==t_odin
  IsRec=.t.
  * Здесь запись найдена
 endif 
endscan
if !m.IsRec
 * Здесь, если нет ни одной найденной записи
endif
Если же ты имеешь ввиду, что надо отобрать сопадающие записи,
то какой в этом смысл - отбирать то, что уже знаешь (в table_odin) ?
...
Рейтинг: 0 / 0
23.01.2006, 08:43
    #33496433
n1m2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
Table_odin i table_mnogo 2 raznie tablitsi i mne nado nayti v table_mnogo skolko takie zapisi kak v table_odin i ix recno() v table_mnogo.
AndreTM, Vash variant vsyo vremya dayut isrec=.t., yesli daje takie zapisi netu v table_mnogo.
...
Рейтинг: 0 / 0
23.01.2006, 19:32
    #33498270
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sravnenie 2 tablitsi s odinokovim strukturami
Ну, во-первых, плохо согласуется:
авторKak mojno sravnit 2 tablitsu s odinokovim strukturami.
и
авторTable_odin i table_mnogo 2 raznie tablitsi
Во-вторых, набери уж тогда пример таблиц (или кинь его архивом)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / sravnenie 2 tablitsi s odinokovim strukturami / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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