Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Соединение таблиц / 8 сообщений из 8, страница 1 из 1
26.09.2018, 13:37
    #39708417
trasca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение таблиц
Допустим, есть Таблица

| NULL | ЗН1 |
| ЗН1 | ЗН1 |
| ЗН2 | ЗН2 |

и

| ЗН1 |
| ЗН2 |

Можно ли join-ом получить таблицу

| ЗН2 |
...
Рейтинг: 0 / 0
26.09.2018, 14:12
    #39708468
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение таблиц
можно... а что джойн в вашем понимании будет делать то ?
...
Рейтинг: 0 / 0
26.09.2018, 14:13
    #39708469
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение таблиц
trasca,

Код: sql
1.
... a join b on a.xz1=b.xz1 and a.xz2=b.xz2
...
Рейтинг: 0 / 0
26.09.2018, 14:13
    #39708470
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение таблиц
courttrasca,

Код: sql
1.
... a join b on a.xz1=b.xz1 and a.xz2=b.xz2

сорян, не то :)
...
Рейтинг: 0 / 0
26.09.2018, 14:45
    #39708501
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение таблиц
это будет считаться join-ом ?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
declare @a table (xz1 varchar(5), xz2 varchar(5))
insert into @a values 
(null,'ЗН1')
,('ЗН1','ЗН1')
,('ЗН2','ЗН2')

declare @b table (xz varchar(5))
insert into @b values
('ЗН1')
,('ЗН2')

-- ******************
select b.* 
from
	(select min(isnull(xz1,'')) as xz1, xz2 from @a group by xz2) a
join 
	@b b on a.xz1=b.xz and a.xz2=b.xz
...
Рейтинг: 0 / 0
26.09.2018, 17:51
    #39708709
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение таблиц
trasca,

Каков вопрос - таков ответ

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
-- Спасибо court-у за тестовые данные...
declare @a table (xz1 varchar(5), xz2 varchar(5))
insert into @a values 
(null,'ЗН1')
,('ЗН1','ЗН1')
,('ЗН2','ЗН2')

declare @b table (xz varchar(5))
insert into @b values
('ЗН1')
,('ЗН2')

-- Сам запрос:
select b.xz
  from @a a
  join @b b -- желанный джойн
    on a.xz2 = b.xz
 group by b.xz
having count(1) = 1
   and max(a.xz1)= b.xz
...
Рейтинг: 0 / 0
26.09.2018, 18:02
    #39708718
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение таблиц
trasca,

а если до агрегатный запросов ещё не дошли и прошли только разные виды джойнов, то вот вам запрос на джойнах:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare @a table (xz1 varchar(5), xz2 varchar(5))
insert into @a values 
(null,'ЗН1')
,('ЗН1','ЗН1')
,('ЗН2','ЗН2')

declare @b table (xz varchar(5))
insert into @b values
('ЗН1')
,('ЗН2')

select b.xz
  from @b b
  join @a a1
    on a1.xz1 = b.xz
  left join @a a2
    on b.xz = a2.xz2
   and (a2.xz1 != b.xz or a2.xz1 is null)
 where a2.xz2 is null


Единственное, в этом случае не учитываются дубликаты по одновалуйным парам в таблице а, если вы понимаете, о чем я...
...
Рейтинг: 0 / 0
27.09.2018, 10:38
    #39709087
trasca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение таблиц
Всем спасибо! Очень познавательно.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Соединение таблиц / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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