Sql 如何获取结果为1 2 3 6 7 8的列我想从表中排除公共ID,并在一列中显示结果
假设我有两个表T1和T2,ID作为列。比如说 T1:IDSql 如何获取结果为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
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);