powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить из одной таблицы все то, чтего нет а другой?
44 сообщений из 44, показаны все 2 страниц
Как получить из одной таблицы все то, чтего нет а другой?
    #32040319
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как получить разницу между таблицами?
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040322
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем 2 раза писать, одного хватит
insert into Table1
select * from Table2 where Table2.Field1<>Table1.Filed1
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040329
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЭЭээ, дарагой, зачем insert, дааа?
Select надо! А то так скопируют, и все, хана таблице.

А по каким критериям разница нужна, аня?
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040330
dmakar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или так:
SELECT * FROM table1
WHERE field1 NOT IN(SELECT field1 FROM table2)
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040339
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
INSERT тоже нужен!
Я хочу разницу добавлять в таблицу.
Например, если в другой таблице есть то, чего в моей нет, то и добавить эту дату, которой нехватает...
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040340
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
че-то я поспешил
Код: plaintext
1.
2.
3.
4.
5.
6.
insert into t1
  select * from 
  Table2 t2
    left join
  Table1 t1
    on t2.field1=t1.field1
  where t1.field1 is null
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040341
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что в таблицах то лежит?
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040343
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять наврал

Код: plaintext
1.
2.
3.
4.
5.
6.
insert into Table1
  select t2.field1 from 
  Table2 t2
    left join
  Table1 t1
    on t2.field1=t1.field1
  where t1.field1 is null


так будет работать точно
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040344
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в таблицах лежит проблема - timestamp
оттого и ошибка:
Cannot insert a non-null value into a timestamp column. Use INSERT with a column list or with a default of NULL for the timestamp column.
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040345
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
timestamp это часом не Interbase ?
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040347
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я хочу не отдельеную колонку, а все...
Делаю примерно так
Код: plaintext
1.
2.
INSERT INTO
SELECT * FROM Server.table.dbo.TABLE
WHERE TBL_NR NOT IN (SELECT TBL_NR FROM dbo.TABLE)
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040351
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не, не Интербайс, а SQL2k
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040352
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
insert into Table1 (field1, .... , fieldN)
  select t2.field1, ....., fieldN from 
  Table2 t2
    left join
  Table1 t1
    on t2.field1=t1.field1 and  -- совпадение данных
 
        .
        .
        .
        t2.fieldN=t1.fieldN
  where t1.field1 is null
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040354
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня 40 таблиц....нельзя ли это как - нибудь автоматизировать???
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040361
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я вот про репликацию думала, но она будет действовать после ее установки...то есть ту дату, что была разной до репликации так и не удасться сопоставить...Или есть какая-то хитрая для этого нужна???
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040362
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ничего не понял, особенно по последнему предложению...
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040365
Кошкинсон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Rom, а что будет, если t1.field1 is null не из-за того, что join не состоялся, а оно само по себе было null?

Аня, обязательно используйте репликацию. Еще попробуйте DTS, OLAP, XML. Тогда точно получится:)
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040367
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это по тому не поняли, что я проблемы не объяснила...
мне надо разность в двух таблицах компенсировать...так, что б хотя бы в одной была вся дата...
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040369
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Кошкинсон
А OLAP здесь вы к чему прикрутите,а самое главное ЗАЧЕМ
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040371
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда используй мой пример
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040372
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять же .. мало информации...
нужно знать структуру табличек... с констрейнами....
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040378
Кошкинсон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Maxx
Затем же, зачем и репликацию. Я так считаю, что чем мудреней технологию мы с Аней задействуем, тем выше шансы, что повезет. Правда, Ань?
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040386
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разница то из-за чего получается?

Из-за update-ов или из-за добавления новых строк?

Если первое, то проблем нет: все записи после даты последней проверки переписываются. Текущая Дата запоминается на потом.

Если из-за изменения записей, то все, что предлагали, не годится. Потому что измененные записи не добавлять, а менять надо
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040390
Фотография Тимур
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
select * from
  [SUPPL].[dbo].sysobjects sp
     full join
  [GSKNSK].[dbo].sysobjects gs
     on  sp.name = gs.name 
  where (sp.name is null or gs.name is null)  

Если не ошибаюсь, вернет разницу (как с той, так и с другой стороны. Если нужна одна - меняй на left (right) join)
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040431
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне кажеться, что Тимур на 100 процентов прав...!!!
Но есть еще вопрос - а можно в жтот запрос еще одну таблицу... наример так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select * from
  [SUPPL].[dbo].sysobjects sp
     full join
  [GSKNSK].[dbo].sysobjects gs
full jouin
[ABV].[dbo] .sysnames sn
     on  sp.name = gs.name  = sn.name
  where (sp.name is null or gs.name is null or sn.name is null)  


спасибо!!!!!
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040435
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вообщето можно только вот второй джойн тоже нужно привязать
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040438
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я че-то не догоняю, зачем FULL Join, когда хватает Left (Right)
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040439
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если в данных есть нулл то это не прокатит...
да и полного пересечения множеств может не выйти...
нужно полное описание таблиц и немного описания логики добавления в таблицы..
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040441
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да нет, вопрос как я понял стоит так, NULL значений нет, надо дополнить таблицу недостающими значениями
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040444
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Тимур

аааа....попробовала код на деле...
вот хотелось бы вместь JOIN ставить что то типа EXCLUDE:)
что б получались не объединенные в одну таблицу данные, а таблица различий, которую можно не глядя в третью таблицу вставлять...
то есть
COL1|COL2| COL1|COL2
не очень то повставляешь,особенно когда надо при инсерте придерживаться структуры таблицы типа
COL1|COL2
....
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040445
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2МАКС
вулл джоин покажет полное пересечение...
но вот ЛЮЮДИИИ...
что будет если в обоих таблицах по 100000 строк?
а потом еще одну таку же запихать?
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040446
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
милая девушка, так в конструкции

insert into Table1 (field1, .... , fieldN)
select t2.field1, ....., fieldN from

ты можешь указать только то, что тебе надо
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040447
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аня, Вы все же скажИте, чего с этими таблицами делается то. Добавляете туда только, или изменяете тоже.

Какие данные там лежат, может просто по дате все легко скопируется


Вы структуру таблиц в секрете держите? :)
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040465
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 tygra
Если б я знала как эти проклятые юзеры эти таблицы "портят", то я б наверно не дежала б ничего в секрете....похоже, что по дате не получиться, так как такого поля нет!
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040471
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если надо в первую таблицу добавить недостающие записи из второй, то проще всего сначала в первой таблице потереть одинаковые записи в обоих таблицах, а потом добавить вторую таблицу целиком. Т.е. как-то так:
Код: plaintext
1.
2.
delete t1 from tbl1 t1,tbl2 t2 where t1.key=t2.key
insert tbl1 select * from tbl2

Если вторая таблица большая и общих записей много, то надо как-то так
Код: plaintext
1.
2.
3.
insert tbl1
  select * from tbl2 t2 
    where not exists(select * from tbl1 t1 where t1.key=t2.key)


То что Вы пишите про timestamp - это совсем другая проблемма. Просто в это поле не надо ничего вставлять.
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040575
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 SergSuper

Не работает так... Хотя очень хотелось бы...Зато работает
то, что Тимур прислал...Однако:)вставить это никак нельзя, так как full join имеет другую структуру...
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040576
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 РОМ
-милая девушка, так в конструкции

-insert into Table1 (field1, .... , fieldN)
-select t2.field1, ....., fieldN from

-ты можешь указать только то, что тебе надо

Да, но проблема в том, что имена в JOIN поаторяються...Какое я тогда всьавляю? А если я использую LEFT join и правые мне не нужны, тогда это становиться опасно!
Или можно так выбирать?
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040579
Rom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в селекте ты можешь указать, какие поля из каких таблиц тебе нужны
select t2 .field1, ....., t1. fieldN from .....
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040582
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2AH9I

insert into #Tmp select
t1_field1 = t1.field1,
t2_field1 = t2.field2
from table 1 t1 full join table2 t2 on t1.timestamp = t2.tomestamp
where t1.timestamp is null or t2.timestamp is null

Так?
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040590
аня
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
млин!
У меня в двух таблицах двоиной ключ есть:(
Как быть????
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040591
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Им персональный запрос!
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040603
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разность двух таблиц:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
 /* SQL script */ 
create table table1 (f1 int,f2 char( 10 ),f3 numeric( 6 , 2 ))
create table table2 (f1 int,f2 char( 10 ),f3 numeric( 6 , 2 ))
go
insert table1 (f1,f2,f3) values( 1 ,'line1', 1 . 00 )
insert table1 (f1,f2,f3) values( 2 ,'line2', 2 . 00 )
insert table1 (f1,f2,f3) values( 3 ,'line3', 3 . 00 )
insert table1 (f1,f2,f3) values( 4 ,'line4', 4 . 00 )
go
insert table2 (f1,f2,f3) values( 1 ,'line1', 1 . 01 )
insert table2 (f1,f2,f3) values( 2 ,'line2', 2 . 00 )
insert table2 (f1,f2,f3) values( 3 ,'line3', 3 . 00 )
insert table2 (f1,f2,f3) values( 4 ,'line4', 4 . 01 )
go
select * into #table3 from  table1
union all
select * from table2
go
select count(*) as cnt,f1,f2,f3 
from #table3
group by f1,f2,f3
having count(*)= 1 
go

 /* results */ 
cnt         f1          f2         f3       
 ----------- ----------- ---------- -------- 
 
 1 . 00          1 . 00         line1       1 . 00 
 1 . 00          1 . 00         line1       1 . 01 
 1 . 00          4 . 00         line4       4 . 00 
 1 . 00          4 . 00         line4       4 . 01 

( 4  row(s) affected)

...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040684
MaxP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему нельзя использовать UNION? Но без параметра ALL.
...
Рейтинг: 0 / 0
Как получить из одной таблицы все то, чтего нет а другой?
    #32040685
Фотография Jimmy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что при этом отсеиваются одинаковые записи (экземпляры).
Проверял на MS SQL2000
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить из одной таблицы все то, чтего нет а другой?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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