powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / SQL запрос из двух таблиц. Из 1й - всё, из 2й - по условию из первой
3 сообщений из 3, страница 1 из 1
SQL запрос из двух таблиц. Из 1й - всё, из 2й - по условию из первой
    #34983705
tolikt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос не совсем по Office и VBA, но задаю тут, а не в форуме SQL Server, т.к. нужно для Excel.

Две таблицы. Выбрать из первой Tab1 всё по полю code1, из второй Tab2 - соответствующие данные поля field2, у которых Tab1.code2=Tab2.field1
Строка запроса такая (правильность синтаксиса пока не рассматриваю):
Код: plaintext
1.
2.
SELECT Tab1.code1 as new1, Tab2.field2 as new2
FROM Tab1, Tab2
WHERE Tab1.code2=Tab2.field2
и получается новая таблица TabN

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 ТАБЛИЦА Tab1		ТАБЛИЦА Tab2 			 ТАБЛИЦА TabN 

 code1	code2		field1	field2			new1	new2 
aa	1		1	A			aa	A
bb	5		2	B			bb	E
cc	3		3	C			cc	C
dd	4		4	D			dd	D
ee	6		5	E			ee	F
ff	2		6	F			ff	B
gg	3		7	G			gg	C
hh	1		8	H			hh	A
ii	4		9	I			ii	D

Однако, если в Tab2.field1 нет данных, соответствующих Tab1.code2, то данные не попадают в результат
т.е. имея таблицы в таком виде (вместо цифры 5 - 0)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 ТАБЛИЦА Tab1		ТАБЛИЦА Tab2 

 code1	code2		field1	field2 
aa	1		1	A
bb	5		2	B
cc	3		3	C
dd	4		4	D
ee	6		0	E
ff	2		6	F
gg	3		7	G
hh	1		8	H
ii	4		9	I

Код: plaintext
имеем                             а хотелось бы  

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 ТАБЛИЦА TabN   	                  ТАБЛИЦА TabN 
 new1	new2			new1	new2 
aa	A			aa	A
cc	C			bb	
dd	D			cc	C
ee	F			dd	D
ff	B			ee	F
gg	C			ff	B
hh	A			gg	C
ii	D			hh	A
				ii	D
т.е. вместо отсутствующих во 2й таблице данных оставлять из первой данные с 0 или пусто.

Сам пытался что-то сделать с UNION, NOT EXISTS, вложенные запросы.
Наверное, всё тут просто, но ничего не получается.
...
Рейтинг: 0 / 0
SQL запрос из двух таблиц. Из 1й - всё, из 2й - по условию из первой
    #34983709
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
toliktВопрос не совсем по Office и VBA, но задаю тут, а не в форуме SQL Server, т.к. нужно для Excel.А лучше все же спрашивать в соответствующем форуме.

Читать учебник по SQL, главу OUTER JOIN.
...
Рейтинг: 0 / 0
SQL запрос из двух таблиц. Из 1й - всё, из 2й - по условию из первой
    #34983852
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
SELECT Tab1.code1, Tab2.field2
FROM Tab1 LEFT JOIN Tab2 ON Tab1.code2 = Tab2.field1;
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / SQL запрос из двух таблиц. Из 1й - всё, из 2й - по условию из первой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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