powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перенести записи из табл2 в табл1. Запрос не работает
6 сообщений из 6, страница 1 из 1
Перенести записи из табл2 в табл1. Запрос не работает
    #35597658
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.
Есть 2 идентичные таблицы с почти одинаковым набором записей. Нужно из таблицы 2 добавить в таблицу 1 те записи, которых нет в таблице 1. Условие проходит по полям Fam и NameOtch (имя отчество/или только имя).
Формат записей такой:
Fam NameOtch
АГАФОНОВ ПЕТР СЕМЕНОВИЧ
СУСЛОВА СВЕТА
Такой формат в обеих таблицах - просто зеркальные копии. Т.е. обычное дублирование, никакого разночтения.
Пишу в 9ке. Мой запрос:
Код: plaintext
1.
2.
USE с:\Spisok1\People.dbf ALIAS sp1 IN  0 
USE с:\Spisok2\People.dbf ALIAS sp2 IN  0 
INSERT INTO sp1 SELECT * FROM sp2 WHERE sp2.Fam!=sp1.Fam AND sp2.NameOtch!=sp1.NameOtch

Запрос не работает!
1. В sp1 и sp2 есть дублирующиеся записи.
2. Запрос все равно добавляет в sp1 все записи из sp2.
...
Рейтинг: 0 / 0
Перенести записи из табл2 в табл1. Запрос не работает
    #35597664
Grey Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BananasПривет.
Есть 2 идентичные таблицы с почти одинаковым набором записей. Нужно из таблицы 2 добавить в таблицу 1 те записи, которых нет в таблице 1. Условие проходит по полям Fam и NameOtch (имя отчество/или только имя).
Формат записей такой:
Fam NameOtch
АГАФОНОВ ПЕТР СЕМЕНОВИЧ
СУСЛОВА СВЕТА
Такой формат в обеих таблицах - просто зеркальные копии. Т.е. обычное дублирование, никакого разночтения.
Пишу в 9ке. Мой запрос:
Код: plaintext
1.
2.
USE с:\Spisok1\People.dbf ALIAS sp1 IN  0 
USE с:\Spisok2\People.dbf ALIAS sp2 IN  0 
INSERT INTO sp1 SELECT * FROM sp2 WHERE sp2.Fam!=sp1.Fam AND sp2.NameOtch!=sp1.NameOtch

Запрос не работает!
1. В sp1 и sp2 есть дублирующиеся записи.
2. Запрос все равно добавляет в sp1 все записи из sp2.

Код: plaintext
1.
2.
USE с:\Spisok1\People.dbf ALIAS sp1 IN  0 
USE с:\Spisok2\People.dbf ALIAS sp2 IN  0 
INSERT INTO sp1 SELECT * FROM sp2, sp1 WHERE sp2.Fam!=sp1.Fam AND sp2.NameOtch!=sp1.NameOtch

А так?
...
Рейтинг: 0 / 0
Перенести записи из табл2 в табл1. Запрос не работает
    #35597687
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А так?

insert into table1
select * from table2 t2
where not exists (select * from table1 where Fam=t2.Fam and NameOtch=t2.NameOtch)
...
Рейтинг: 0 / 0
Перенести записи из табл2 в табл1. Запрос не работает
    #35597716
Grey Cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miv32А так?

insert into table1
select * from table2 t2
where not exists (select * from table1 where Fam=t2.Fam and NameOtch=t2.NameOtch)

снимаю шляпу) мой вариант нерабочий
...
Рейтинг: 0 / 0
Перенести записи из табл2 в табл1. Запрос не работает
    #35597890
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Grey Cat
Код: plaintext
1.
2.
USE с:\Spisok1\People.dbf ALIAS sp1 IN  0 
USE с:\Spisok2\People.dbf ALIAS sp2 IN  0 
INSERT INTO sp1 SELECT * FROM sp2, sp1 WHERE sp2.Fam!=sp1.Fam AND sp2.NameOtch!=sp1.NameOtch

А так?
благополучно повесил.

miv32А так?

insert into table1
select * from table2 t2
where not exists (select * from table1 where Fam=t2.Fam and NameOtch=t2.NameOtch)
Работает, спаибо! До этого пробовал not in - записи дублировались, да и != не работает. Странно.
...
Рейтинг: 0 / 0
Перенести записи из табл2 в табл1. Запрос не работает
    #35603347
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Работает, спаибо! До этого пробовал not in - записи дублировались, да
> и != не работает. Странно.

Да что вы говорите?!! Лет н-цать назат один умный человек мне сказал:
"Программа работает не так как хочет программист. а так, как она написана!"

CREATE CURSOR t1 (t n (3))

CREATE CURSOR t2 (t n (3))

INSERT INTO t1 (t) VALUES (1)

INSERT INTO t1 (t) VALUES (2)

INSERT INTO t1 (t) VALUES (3)

INSERT INTO t1 (t) VALUES (4)

INSERT INTO t1 (t) VALUES (5)

INSERT INTO t2 (t) VALUES (1)

INSERT INTO t2 (t) VALUES (2)

INSERT INTO t2 (t) VALUES (3)

INSERT INTO t2 (t) VALUES (4)

INSERT INTO t2 (t) VALUES (5)

SELECT * FROM t1, t2 WHERE t1.t#t2.t





Посмотри на результат внимательно. По моему отрабатывает как нельзя
правильнее.

В частности строчек 1,1; 2,2; 3,3; 4,4; 5,5 НЕТ. Т.е. select выбрал все в
СООТВЕТСТВИИ с указанными условиями!


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Перенести записи из табл2 в табл1. Запрос не работает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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