如何用sql将两张表的字段名和列值进行匹配?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用sql将两张表的字段名和列值进行匹配?相关的知识,希望对你有一定的参考价值。

我有access数据库的两张表A,B,表A的结构是:
字段名为:A1,A2,A3
对应的记录值为:3,2,6
表B的字段名为:B1,B2
对应的记录值为:A1,东
A2,南
A3,西
就是说表B是对表A的字段名的一个解释,如何用一个查询语句得到如下记录集:
A1,东,3
A2,南,2
A3,西,6
就是每条记录既能显示A的值,也能出现A的对应解释,不知能否实现?
表的结构不能变,像 “不小心牛叉了”说的那样就把表结构变了
3楼的请说明一下你的语句是啥意思,里面的x是什么,看不懂阿

select B.*,X.A1 from
(select 'A1' A1,A1, 'A2' A2,A2, 'A3' A3,A3 from A表) X,B表
where X.A1=B.A1

把括号内的查询语句作为一个表,表名是X
参考技术A 你可以A表设2列,一列存放A1、A2、A3,另一列存放3、2、6
这样就可以用inner join 或者 联合查询来实现那个效果。
参考技术B mark

Oracle数据库,关于关联两张表更新问题

如有主表A,子表B,当主表A对应的子表B数据条数不为0,并且,所有子表B的数据中某字段(如status)都为30时,则更新主表A的status字段为30.。非常感谢

两表关联更新用如下方法。

有以下两张表:

根据test2表中的id和test1表中的id关联,修改test1表中name字段,语句如下:

update test1 a set a.name=(select b.name from test2 b where a.id=b.id) where a.id in (select id from test2);

更新后,test1表中结果:

参考技术A --因为没有给出a、b两个表的关联,所以用a.id和b.aid做了关联
update a aa set status=30
where
(select count(status) from b where a.id=b.aid)>0 --确定b表有A表子数据
and
(select count(status) from b where a.id=b.aid and b.status<>30)=0--b表子数据status<>30个数=0个,说明子数据status全部为30本回答被提问者采纳

以上是关于如何用sql将两张表的字段名和列值进行匹配?的主要内容,如果未能解决你的问题,请参考以下文章

如何用标准SQL语句给一张表中添加多个字段

数据库将两张表进行横向连接(拼接成一张表的形式显示)

已经建立了两个表,请问如何用SQL语句建立关联?

SQL关联两张表查数据,结果只显示一条。

两个表匹配,匹配上把一张表的值复制到另一张表的sql语句怎么写

SQL关联两张表查数据,结果只显示一条。