惠安县小岞镇邮编:sql语句(两不同表合并且把重复的放在一条数据里)

来源:百度文库 编辑:查人人中国名人网 时间:2024/03/29 22:37:35
table1:
id sfz xm xqz bj
1 123 张三 1 1-1
2 124 李四 1 2-1
table2:
id sfz xm xqz bj
1 123 张三 2 1-1
2 128 王五 2 3-1
要求得出表3(如table1和table2中身份证一样,那么出现在一条记录中):
id id1 sfz1 xm1 xqz1 bj1 id2 sfz2 xm2 xqz2 bj2
1 1 123 张三 1 1-1 1 123 张三 2 1-1
2 2 1234 李四 1 2-1
3 2 128 王五 2 3-1
请问应该怎么写出sql语句.数据量比较大,有20万条以上.
上面第三条记录中前面对空格,对应的id2后才开始.

按jinglinggg朋友的方法,把id改为sfz,得出了交集的数据,可非交集的数据显示不到表格中啊.可以一起显示出来吗?

不要where不行,不知三楼的朋友有什么其他办法没?

select distinct * from table1,table2 where table1.id=table2.id

*显示所有记录
将*改为你显示的记录即可

假设你是用sqlserver数据库
select * from table1 full join table2 on table1.id=table2.id
这样可以得出你的要求,不过标识ID还没有

不过你可以事先建一个table3,然后
insert into table3
select * from table1 full join table2 on table1.id=table2.id
应该就可以

这是最好的办法了,要不然只能用游标了,那样更麻烦

上面的语句好像有的问题啊。
我建议你要建立第三个表,具体的我再想想啊。
你把where语句去掉试试,有where在的话,只能显示sfz相等的数据