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语言中把数据库中两张表数据关联起来的语句的主要内容,如果未能解决你的问题,请参考以下文章

如何用SQL语句查询两张表中的相同字段数据

sql 两张表的联系是主表一个字段是由子表id加号拼接而成,请问怎么连

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

关于SQL中两张表联合sum和group by的查询问题

怎样用Sql语句判断一张表中的两条数据相同

在SQL语句中,如何把两张表的数据按时间排序查询?