如何解决在SQL中比较具有不同列号的两个表
我正在使用Sybase进行SQL编码。
我正在比较具有相同列的表,如下所示:
SELECT name,date,time,location
FROM
(SELECT * FROM table1
UNION ALL
SELECT * FROM table2) data
GROUP BY name,location
HAVING count(*)!=2
现在,我希望能够比较table1和table2,但现在table2还有另一列称为origin
,并且我不确定如何扩展当前逻辑以使其实现。
---Intention: to be able to compare the two tables with varying column numbers
---How to modify this code to do it?
I want to be able to show the differences between the two tables after the query.
有人可以引导我吗?我不想使用联接或减号,我更喜欢使用UNION方式。
解决方法
如果要合并两个不同的表,则必须弥补缺少的列。例如:
SELECT name,date,time,location,origin FROM table2
UNION ALL
SELECT name,null as origin FROM table1
,
我认为问题在于您实际上想忽略多余的列。使用select *
的问题在于事情可以改变。
SELECT name,location
FROM (
SELECT name,location FROM table1
UNION ALL
SELECT name,location FROM table2
) data
GROUP BY name,location
HAVING count(*) != 2
如果您不打算在联合的一半使用select *
,则没有任何理由首先使用origin
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。