表1有表2没有的数据,表2有表1没有的数据,表1和表2有共同的数据
表1和表2有一个字段是不同的
问题就是最后的查询可以显示出表1表2的全部数据,但是没有重复
例子:table1 字段A,B,C,D,E
table2 字段A,B,C,D,F
table1.A,table1.B,table1.C,table1.D和table2.A,table2.B,table2.C,table2.D中有相同的数据也有不同的数据 table1.E和table1.F数据不同
需要的结果是select table1.A, table1.B , table1.C , table1.D, table1.E , table2.F from *****
table1和2 的ABCD都要查出来,不能重复,E和F在对应上
D字段可以当成ID但是,table1和2中D字段的条数不一样,
要求写出来,本人菜鸟,真是不会
需要 union 先吧相同的列 给合并出来然后 在连接原来的2个表 大概语句是这样的 语法上可能有问题 你调试下看下
select A,B,C,D ,table1.E,table2.F from (
select table1.A,table1.B,table1.c,table1.D from table1
union
select table2.A,table12.B,table2.c,table2.D from table2
) tb left join table1 on table1.A =tb.A
left join table2 on table2.A =tb.A
自己加条件过滤重复的
@傲雪江南: 恩恩,我试试
@YongX: 哈哈 出来了,可是这豆子怎么给你
@YongX: 给了你130个豆子,因为也不全是根据你的思路的,所以我分给了别人点
然后呢?问题呢???
抱歉,问题补全了,再看一次
差集 交集 并集
抱歉,问题补全了,再看一次
用sqlserver可以直接用select into xxx where xxx来解决 搜一下Oracle又没有相同的解决方案
抱歉,问题补全了,再看一次
@YongX: E和F不同 算是同一条数据么
在sqlserver中可以先查询出相同的数据,然后再通过条件筛选出不同的数据,大概能得到三张表再使用Union All来解决,
貌似 Union可以自动去除重复?这个关键字不是很了解,然后你在找下Oracle中又没有相同的方案。
一、确定需求,你的不重复是指某些字段不重复就可以达到目的还是针对整条数据
二、确定了哪些不重复,使用 distinct类似的函数或者使用 select into where XX 去重复
嗯,还是高分题回答的人多
select table1.A,table1.B,table.c,table.D,table1E,table2F from table1,table2
where table1.D =tabke2.D
我也不会,哈哈,厄 木有考虑效率或优化,不知道有重复数据不。
求差值的话,用right join 或者left join
distinct 是去掉重复数据的。
一般查询并删除完全重复的数据。
例如查询卡号相同的数据。
select keyno from table1
group by keyno
having count(keyno) >1;