假设我有一个带有 SSN 变量的两个表,我想显示仅在一个表中的表,而不是两个表。
这样做的正确方法是什么?
这是一种方法:
select coalesce(t1.ssn, t2.ssn)
from t1 full outer join
t2
on t1.ssn = t2.ssn
where t1.ssn is null or t2.ssn is null;
这适用于大多数数据库,但不适用于 MySQL。以下内容几乎适用于任何数据库:
select ssn
from ((select ssn, 't1' as which
from t1
) union all
(select ssn, 't2' as which
from t2
)
) t
group by ssn
having count(distinct which) = 1