Sql 如何获取结果为1 2 3 6 7 8的列我想从表中排除公共ID,并在一列中显示结果

Sql 如何获取结果为1 2 3 6 7 8的列我想从表中排除公共ID,并在一列中显示结果,sql,join,Sql,Join,假设我有两个表T1和T2,ID作为列。比如说 T1:ID 1 2 3 4 5 T2:ID 如何获取结果为1 2 3 6 7 8的列我想从表中排除公共ID,并在一列中显示结果。Hmmm。一种方法是联合所有: 使用减号 select id from ( select id from t1 union select id from t2 ) a minus select id

假设我有两个表T1和T2,ID作为列。比如说

T1:ID

1              
2              
3              
4              
5   
T2:ID

如何获取结果为1 2 3 6 7 8的列我想从表中排除公共ID,并在一列中显示结果。

Hmmm。一种方法是联合所有:

使用减号

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 
如果您的DBMS支持完全外部连接,那么我将执行以下操作:

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);

标记您正在使用的DBMS。我注意到您的问题被否决了。如果你不明白为什么会被否决,那就考虑一下。我怀疑,如果您发布了一条SQL语句的文本,并显示了它的不良结果,那么您可能不会被否决。
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 
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);