sql数据库如何从两张不同的表中,筛选出不同的字段,如A表中选a,b两个字段,B表中选c,d字段,求sql语句

sql数据库

select a,b,c,d from A表,B表 where 表a和表b关联字段;

追问

提示列名不明确,因为B表中字段有和A表的相同 ,而B表需要筛选的字段正是和A表相同的

追答select h.a,h.b,k.c,k.d from A表 h ,B表 k where 表a和表b关联字段;

最好能截图看下你表结构~

追问

B表

A表

谢谢您

追答select A表.gsdm,A表.kjnd,B表.kind,B表.kndm  from A表 ,B表  where A表.gsdm=B表.gsdm;

追问

不好意思我太菜了没看懂,我需要是B表中的gsdm,zth,kjnd字段,A表中的dwdm,dwmc字段,如何整呢

不好意思我太菜了没看懂,我需要是B表中的gsdm,zth,kjnd字段,A表中的dwdm,dwmc字段,如何整呢

追答select A表.dwdm,A表.dwmc,B表.gsdm,B表.zth, B表.kjnd from A表 ,B表  where A表.gsdm=B表.gsdm;

 经验证,望采纳~

追问

非常感谢您,不好意思我没有表达清楚,我的意思需要筛选B表的dwdm,dwmc字段,A表中的kmdm,kmmc字段,而kjnd,zth,gsdm作为条件

追答select 表A.kmdm,表A.kmmc,表B.dwdm,表B.dwdc from 表A,表B where 表A.gsdm=表B.gsdm;

相同的字段用一个作为条件就行了,如果必须要的话就:

select 表A.kmdm,表A.kmmc,表B.dwdm,表B.dwdc from 表A,表B where 表A.gsdm=表B.gsdm and 表A.kjnd=表B.kjnd and 表A.zth=表B.zth;

追问

ok谢谢你

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-22
有关联字段:
select a,b,c,d from 表 inner join 另外一张表 on 条件 = 条件

没有关联字段:
select a,b from 表
union all
select c,d from 另外一张表追问

其中A,B两张表中有2个字段是相同的,而A表中需要的字段B表没有。而B表需要的字段,A表中有,刚试了达不想要的目的

追答

搜索A中和B不一样的字段:
select a,b from A
where a+b not in
(
select c+d from B
)

追问

谢谢高手,我的目的是:如A表有a,b,c,d,e字段,B表中有a,b,g,h,j,k字段,我需要是筛选出A表的c,d字段,B表中的a,b,g字段,刚用您说的第一种方法不行,请问一下这个应该如何写呢

追答

select c,d,B.a,B.b,B.g from A,B
where A.a+A.b = B.a+B.b
大概是这个意思?

追问

不是的,我表达有点问题,A表有a,b,c,d,e字段,B表中有a,b,g,h,j,k字段,我需要是筛选出A表的c,d字段,B表中的h,j字段,而a,b,g作为条件

第2个回答  推荐于2018-04-12
若有相关联的字段的话,用内连接
select a,b,c,d from 表 inner join 另外一张表 on 条件 = 条件本回答被网友采纳
第3个回答  2013-10-22
SELECT A.c,A.d,B.a,B.b,B.g
FROM A,B
WHERE A.a = B.a(+)
AND A.b = B.b(+)
或者
SELECT A.c,A.d,B.a,B.b,B.g
FROM A,B
WHERE A.a (+)= B.a
AND A.b (+)= B.b
加号位置要看哪个为主表
相似回答