Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Пересечение множеств по колонке  [new]
Robb
Member

Откуда: там и тут
Сообщений: 949
У меня вопрос к гуру..

Есть множество записей

Первое

А, запись1
Б, запись 2

Второе

Б, запись3
С, запись 4

Есть ли возможность пересечь множества по одной 1-ой колонке, чтобы получилось:

Общее множество

А, запись1
Б, запись 2
С, запись 4


Исключая только первую запись во втором множестве?
18 авг 09, 19:26    [7553549]     Ответить | Цитировать Сообщить модератору
 Re: Пересечение множеств по колонке  [new]
Robb
Member

Откуда: там и тут
Сообщений: 949
JOIN по неравенству поля не нужен.. что-то типа INTERSECT BY 1-Я КОЛОНКА
18 авг 09, 19:28    [7553557]     Ответить | Цитировать Сообщить модератору
 Re: Пересечение множеств по колонке  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
select * from table1
union all
select * from table2 t2 left join table1 t1 on t2.col = t1.col where t1.col is null

для спящего время бодрствования равносильно сну
18 авг 09, 19:28    [7553559]     Ответить | Цитировать Сообщить модератору
 Re: Пересечение множеств по колонке  [new]
Robb
Member

Откуда: там и тут
Сообщений: 949
Сейчас попробую...
18 авг 09, 19:31    [7553568]     Ответить | Цитировать Сообщить модератору
 Re: Пересечение множеств по колонке  [new]
iljy
Member

Откуда:
Сообщений: 8711
Robb,

select * from Table1
  union all
select * from Table2 t
where not exists
(
  select * from Table1 where col1 = t.col1
)
18 авг 09, 19:34    [7553579]     Ответить | Цитировать Сообщить модератору
 Re: Пересечение множеств по колонке  [new]
Robb
Member

Откуда: там и тут
Сообщений: 949
create table table1
( id int,name varchar(10))
  
create table table2
( id int,name varchar(10)) 
 
insert into table1 values ('1','Robert')  
insert into table1 values ('2','Misha')  
insert into table1 values ('3','Anna')  
insert into table2 values ('3','Nikola')  
insert into table2 values ('4','Peter')  
insert into table2 values ('5','Alex')  

select * from table1
union all
select t2.id, t2.name from table2 t2 left join table1 t1 on t2.id = t1.id where t1.id is null
----------------
1 Robert
2 Misha
3 Anna
4 Peter
5 Alex
18 авг 09, 20:00    [7553643]     Ответить | Цитировать Сообщить модератору
 Re: Пересечение множеств по колонке  [new]
Robb
Member

Откуда: там и тут
Сообщений: 949
Как с-join-ить понятно... спасибо..

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

но видимо придется..
18 авг 09, 20:01    [7553649]     Ответить | Цитировать Сообщить модератору
 Re: Пересечение множеств по колонке  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
Robb
create table table1
( id int,name varchar(10))
  
create table table2
( id int,name varchar(10)) 
 
insert into table1 values ('1','Robert')  
insert into table1 values ('2','Misha')  
insert into table1 values ('3','Anna')  
insert into table2 values ('3','Nikola')  
insert into table2 values ('4','Peter')  
insert into table2 values ('5','Alex')  

select * from table1
union all
select t2.id, t2.name from table2 t2 left join table1 t1 on t2.id = t1.id where t1.id is null
----------------
1 Robert
2 Misha
3 Anna
4 Peter
5 Alex

Вы хотите поговорить об этом?
18 авг 09, 20:01    [7553650]     Ответить | Цитировать Сообщить модератору
 Re: Пересечение множеств по колонке  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
Robb
Как с-join-ить понятно... спасибо..

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

но видимо придется..

ну да упрощаем задачку на SQL.ру. потом пытаемся решить ее полученным методом. а в итоге, как всегда, задачку можно решить много проще, приведя исходную.
18 авг 09, 20:03    [7553656]     Ответить | Цитировать Сообщить модератору
 Re: Пересечение множеств по колонке  [new]
Robb
Member

Откуда: там и тут
Сообщений: 949
Алексей2003
Robb
Как с-join-ить понятно... спасибо..

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

но видимо придется..

ну да упрощаем задачку на SQL.ру. потом пытаемся решить ее полученным методом. а в итоге, как всегда, задачку можно решить много проще, приведя исходную.


ТЮНИНГОВАТЬ ПРИДЕТСЯ (обращусь может)

Спасибо..
18 авг 09, 20:10    [7553661]     Ответить | Цитировать Сообщить модератору
 Re: Пересечение множеств по колонке  [new]
Robb
Member

Откуда: там и тут
Сообщений: 949
SQL= великая вещь!
18 авг 09, 20:12    [7553665]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить