У меня есть таблица из 2 столбцов, которую мне нужно запросить к другой таблице из 2 столбцов. У меня есть несколько запросов, чтобы определить:
- , если столбец 1 существует
- , если столбец 2 существует
- , если существует комбинация столбца 1 и 2 (если нет, получить соответствующие значения каждого из них)
Образцы таблиц:
create table tblSource (col1 varchar(20), col2 varchar(20))
create table myTable (colA varchar(20), colB varchar(20))
insert into tblSource (col1, col2)
values ('foo1','bar1'), ('foo2','bar2'), ('foo3','bar3'),('foo4','bar4');
insert into myTable (colA, colB)
values ('foo1','bar3'), ('foo2','bar2'), ('foo5','bar3'),('foo6','bar6');
Я хочу показать, что в myTable
('foo1', 'bar3') существует отдельно, но их комбинация не имеет, и foo1 ассоциируется с bar1, а bar3 ассоциируется с foo1 в tblSource
. Какой самый краткий запрос для достижения этой цели?
Я написал простые отдельные запросы, подобные следующим, но я думаю, что должен быть лучший способ добиться этого.
Возвращает, какие значения colA существуют или не существуют в tblSource
. Я должен сделать то же самое для colB, а затем для комбинации.
Последнее замечание, что я использую базу данных Azure SQL, однако мне нужно использовать ADO для запуска запросов из Excel.
SELECT col1, colA
FROM myTable
LEFT JOIN tblSource ON myTable.colA = tblSource.col1
Редактировать:
Ожидаемый результат должен выглядеть примерно так:
1. ('foo1','bar3'): both exist, but not associated, foo1-bar1 , foo3-bar3
2. ('foo2','bar2'): both exist and associated
3. ('foo5','bar3'): colB exist only, NULL, foo3-bar3
4. ('foo6','bar6'): None exist