SQL语言中把数据库中两张表数据关联起来的语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL语言中把数据库中两张表数据关联起来的语句相关的知识,希望对你有一定的参考价值。
cj表
xh
kcdh
cj
kc表
kcdh
kcm
求如何把两张表的内容关联起来(kcdh)的SQL语句
1、创建两张测试表,
create table test_cj(name VARCHAR(20), remark varchar2(20));
create table test_kc(name VARCHAR(20), remark varchar2(20));
2、插入测试数据
insert into test_cj values('xh','cj_1');
insert into test_cj values('kcdh','cj_2');
insert into test_cj values('cj','cj_3');
insert into test_kc values('kcdh','kc_1');
insert into test_kc values('kcm','kc_2');
3、查询两张表的总记录数,select t.*, rowid from test_cj t union all select t.*, rowid from test_kc t,
4、编写sql,两张表进行关联,select t.name, t.remark, b.remark from test_cj t, test_kc b where t.name=b.name,可以发现关联出kcdh的记录,
参考技术A select *from cj join kc on cj.kcdh=kc.kcdh
--就这么简单。这样保证两个表的数据都能查出来。
--inner join内连接将会过滤掉不存在关联的数据的。本回答被提问者采纳 参考技术B select * from cj表,kc表 where cj表.kcdh=kc表.kcdh
或者 select * from cj表 where kcdh=(select kcdh from kc表) 参考技术C select cj.xh, cj.kcdh, cj.cj, kc.kcdh, kc.kcm
from cj inner join kc on (cj.kcdh = kc.kcdh)
SQL SERVER
PS 用inner join 最好。 参考技术D Select a.xh,a.kcdh,a.cj,b.kcdh,b.kcm from cj as a,kc as b where a.kcdh=b.kcdh
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语言中把数据库中两张表数据关联起来的语句的主要内容,如果未能解决你的问题,请参考以下文章