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

Откуда:
Сообщений: 10
Подскажите пожалуйста, как реализовать такой запрос.

Есть две таблицы:
DECLARE @t TABLE(id int, eventid int)

DECLARE @t2 TABLE(id2 int, eventid int)


Данные:
INSERT INTO @t([id], [eventid])
SELECT 1, 1
UNION ALL
SELECT 2, 1
UNION ALL
SELECT 3, 2

INSERT INTO @t2(id2, [eventid])
SELECT 1, 1
UNION ALL
SELECT 2, 1
UNION ALL 
SELECT 3, 1


Нужно вывести все id из @t1 и id2 из @t2 по eventid, но так, чтобы в таблице @t1 не размножались запись.
Лучше на примере из этих данных объяснить.

Хочу увидеть такой результат:
idid2
11
22
NULL3
3NULL


как этого добиться?
10 окт 18, 15:30    [21700617]     Ответить | Цитировать Сообщить модератору
 Re: t-sql запрос  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
newLoginSql
Подскажите пожалуйста, как реализовать такой запрос.

Есть две таблицы:
DECLARE @t TABLE(id int, eventid int)

DECLARE @t2 TABLE(id2 int, eventid int)



Данные:
INSERT INTO @t([id], [eventid])
SELECT 1, 1
UNION ALL
SELECT 2, 1
UNION ALL
SELECT 3, 2

INSERT INTO @t2(id2, [eventid])
SELECT 1, 1
UNION ALL
SELECT 2, 1
UNION ALL 
SELECT 3, 1



Нужно вывести все id из @t1 и id2 из @t2 по eventid, но так, чтобы в таблице @t1 не размножались запись.
Лучше на примере из этих данных объяснить.

Хочу увидеть такой результат:
idid2
11
22
NULL3
3NULL


как этого добиться?


full join, видимо по t.eventid=t2.eventid и t.id=t2.id2

про размножение записей в @t1 непонятно, селект ничего в таблицу не добавит.
10 окт 18, 15:36    [21700630]     Ответить | Цитировать Сообщить модератору
 Re: t-sql запрос  [new]
newLoginSql
Member

Откуда:
Сообщений: 10
Ну вот, full join:
SELECT * FROM @t t1
FULL JOIN @t2 t2 ON t1.[eventid] = t2.[eventid]


Возвращает
idid2
11
12
13
21
22
23
3 NULL


Это не то
10 окт 18, 15:44    [21700639]     Ответить | Цитировать Сообщить модератору
 Re: t-sql запрос  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
newLoginSql
Ну вот, full join:
SELECT * FROM @t t1
FULL JOIN @t2 t2 ON t1.[eventid] = t2.[eventid]



Возвращает
idid2
11
12
13
21
22
23
3 NULL


Это не то


Посетитель
и t.id=t2.id2

переводится как
and t1.id=t2.id2
10 окт 18, 15:47    [21700644]     Ответить | Цитировать Сообщить модератору
 Re: t-sql запрос  [new]
newLoginSql
Member

Откуда:
Сообщений: 10
Посетитель,

а вы моё сообщение первое читали?

автор
Нужно вывести все id из @t1 и id2 из @t2 по eventid
10 окт 18, 15:52    [21700647]     Ответить | Цитировать Сообщить модератору
 Re: t-sql запрос  [new]
_human
Member

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

Посетитель
full join, видимо по t.eventid=t2.eventid и t.id=t2.id2
10 окт 18, 15:57    [21700653]     Ответить | Цитировать Сообщить модератору
 Re: t-sql запрос  [new]
Посетитель
Member

Откуда:
Сообщений: 1209
newLoginSql
Посетитель,

а вы моё сообщение первое читали?

автор
Нужно вывести все id из @t1 и id2 из @t2 по eventid


а вы его сами читали?

newLoginSql
Хочу увидеть такой результат:
idid2
11
22
NULL3
3NULL
10 окт 18, 16:01    [21700662]     Ответить | Цитировать Сообщить модератору
 Re: t-sql запрос  [new]
982183
Member

Откуда: VL
Сообщений: 3351
Получи вот такую табличку:
idid2eventid
111
221
NULL31
3NULL2

Элементарно.

А потом уже по необходимости убирай столбец или нет.
10 окт 18, 16:18    [21700706]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить