SQL两张表如何合并为一张表
我有两张,分别是A,B表,里面都是有一个NO字段,在两张中,可能相同的NO号,也可能也不同的NO号,数值分别如下:AtableNOqtyA500.0000B100.000...
我有两张,分别是A,B表,里面都是有一个NO字段,在两张中,可能相同的NO号,也
可能也不同的NO号,数值分别如下:
A table
NO qty
A 500.0000
B 100.0000
D 123.0000
F 200.0000
B table
no qty
B 200.0000
C 147.0000
D 258.0000
E 369.0000
F 100.0000
要求两张表合并,显示效果如下:
NO qty no qty
A 500
B 100 B 200
D 123 D 258
F 200 F 100
C 147
E 369
意思就是:当两张表中的NO相同时,则在同一行显示,如果不同的时候,错行显示,如我的C,E项目。
我用LEFT JOIN试过,他只以A基础表,当B表中不同的时候,他不给予显示,所以希望各位高手指点一下,不胜感激。 展开
可能也不同的NO号,数值分别如下:
A table
NO qty
A 500.0000
B 100.0000
D 123.0000
F 200.0000
B table
no qty
B 200.0000
C 147.0000
D 258.0000
E 369.0000
F 100.0000
要求两张表合并,显示效果如下:
NO qty no qty
A 500
B 100 B 200
D 123 D 258
F 200 F 100
C 147
E 369
意思就是:当两张表中的NO相同时,则在同一行显示,如果不同的时候,错行显示,如我的C,E项目。
我用LEFT JOIN试过,他只以A基础表,当B表中不同的时候,他不给予显示,所以希望各位高手指点一下,不胜感激。 展开
展开全部
我这个方法比较笨
要操作的诗句实际上有两种,而且插入数据库的格式也不一样,可以第一步先把不同的找出来,第二步吧相同的找出来然后按你那种格式放在一起
第一步
1.select A.no,A,qty from A where not exists ( select * from B where A.no=B.no);选出A中不重复的记录
2.select B.no,B,qty from B where not exists ( select * from A where A.no=B.no);
第二部
select A.no,A.qty,B.no,B.qty from A,B where A.no = B.no
我比较菜,想不出厉害的方法了
要操作的诗句实际上有两种,而且插入数据库的格式也不一样,可以第一步先把不同的找出来,第二步吧相同的找出来然后按你那种格式放在一起
第一步
1.select A.no,A,qty from A where not exists ( select * from B where A.no=B.no);选出A中不重复的记录
2.select B.no,B,qty from B where not exists ( select * from A where A.no=B.no);
第二部
select A.no,A.qty,B.no,B.qty from A,B where A.no = B.no
我比较菜,想不出厉害的方法了
展开全部
可以通过以下sql实现
sql:create table tablename1 as select t2.filename1, t3.filename2 from tablename2 t2,tablename3 t3 where t2.id =t3.id;
解释:
从tablename2表中读取出filename1字段,从tablename3表中读取出filename2字段插入到新建的tablename1表中。
后面的where条件是通过id字段,将查询的两张表关联起来确定依赖关系。
sql:create table tablename1 as select t2.filename1, t3.filename2 from tablename2 t2,tablename3 t3 where t2.id =t3.id;
解释:
从tablename2表中读取出filename1字段,从tablename3表中读取出filename2字段插入到新建的tablename1表中。
后面的where条件是通过id字段,将查询的两张表关联起来确定依赖关系。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用union
先以A为主表做left join,在以B表为主表做LEFT JOIN
然后两表UNION,UNION会过滤掉重复的部分
先以A为主表做left join,在以B表为主表做LEFT JOIN
然后两表UNION,UNION会过滤掉重复的部分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该用 isnull(A, '')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询