Как получить столбец, где мой результат 1 2 3 6 7 8 Я хочу исключить общие идентификаторы из таблицы и отобразить результат в одном столбце - PullRequest
0 голосов
/ 20 февраля 2019

Допустим, у меня есть две таблицы T1 и T2 с идентификатором в качестве столбца.Например,

T1: ID

1              
2              
3              
4              
5   

T2: ID

4
5
6
7
8

Как получить столбец, в котором мой результат равен 1 2 3 6 7 8 Я хочуисключите общие идентификаторы из таблицы и отобразите результат в одном столбце.

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

использовать минус

select id from 
(
select id from t1 
union 
select id from t2
) a
minus select id from (
select  id from t1 join t2 on t1.id=t2.id
) b 
0 голосов
/ 20 февраля 2019

Если ваша СУБД поддерживает FULL OUTER JOIN, то я бы сделал:

select coalesce(t1.id, t2.id)
from t1 full outer join
     t2
     on t2.id = t1.id
where (t1.id is null or t2.id is null);
0 голосов
/ 20 февраля 2019

Хммм.,,один метод union all:

select t1.id
from table1 t1
where not exists (select 1 from table2 t2 where t2.id = t1.id)
union all
select t1.id
from table2 t2
where not exists (select 1 from table1 t1 where t2.id = t1.id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...