如何解决SQL联合似乎为我失败
几年来我都没有做过任何SQL查询。 我遇到了一个看起来很简单的问题,但是我似乎无法在合理的时间内解决它。 假设我有两个使用select语句从数据库中提取的表:
table1:
id name status
1 record1 ACTIVE
2 record2 ACTIVE
table2:
id name status
1 record3 DELETED
2 record1 DELETED
我想要第三个表如下:
table3:
id name status
1 record1 ACTIVE
2 record2 ACTIVE
3 record3 DELETED
因此,基本上,如果该列存在于“ ACTIVE”表中,则无论该列在“ DELETED”表中具有相同的名称,都必须在第三列(表3)中将其显示为ACTIVE。此外,如果“ DELETED”表中有特定名称的列,但“ ACTIVE”表中没有,则也应显示为DELETED。
我希望我已经足够清楚地解释了这个问题。 这是我第一次在stackoverflow上发帖,希望我能从你们那里得到一些帮助。 谢谢! :-)
解决方法
我想你想要
select a.*
from actives a
union all
select d.*
from deletes d
where not exists (select 1 from actives a where a.name = d.name);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。