1,打开该access数据库,数据库工具,点击关系。
2,然后便会出现各个表之间对应的关系,右击它们之间的连线,点击删除。
3,右击空白处,点击插入,然后选择这两张表,将一张表中的某个字段拉到另一张表中的相同字段,然后在跳出的窗体中进行设置就可以了。
可以这样做:比如有两个TADODataSet组成主细表
adsMain和adsDetail,需要加上一个TDataSource对象用于连接主表的DataSet,然后设置adsDetail的DataSource为主表的DataSource,最后写各自的CommandText:主表为:select
from
主表细表:select
from
细表
where
关联字段=:关联字段
查看原帖>>
可以通过前面加上数据库名字来实现,如下:
select
a`id`,b,a`create_time`
from
testorders
a
left
join
test1products
b
on
apid=bid;
test1products:
testorders:
关联查询是日常工作中常用的查询方式,关联查询sql编写的思路一般如下:1、先确定所连接的表,2、再确定所要查询的字段,3、确定连接条件以及连接方式(表连接分类: 内连接、外连接、交叉连接、自连接)
1、内连接:[inner] join on
分类:等值连接、非等值连接
(1)等值连接: 指使用等号"=“比较两个表的连接列的值,相当于两表执行笛卡尔后,取两表连结列值相等的记录(自然连接是一种特殊的等值连接)(2)非等值连接:指使用”>“或”<"比较两个表的连接列的值,相当于两表执行笛卡尔后,取一个表大于或小于另一个表的连结列值的记录
2、外连接
分类:左外连接、右外连接、全外连接
(1)左外连接:left outer join
连接效果:查询结果包含左、右两个表需要查询的全部行,左侧的表中的全部数据都会被显示出来,但是右侧表的数据,只有和左侧匹配上的数据才会被查询出来!否则显示为null(2)右外连接:right outer join
连接效果:查询结果包含左、右两个表需要查询的全部行,右侧的表中的全部数据都会被显示出来,但是左侧表的数据,只有和右侧匹配上的数据才会被查询出来!否则显示为null(3)全外连接:full/all outer join,查询结果包含左、右两个表需要查询的全部行,对应字段没有值显示null
3、交叉连接
左表中的每一行与右表中的所有行组合,也叫表与表之间做笛卡尔积查询
4、自连接
当前表与自身的连接查询,关键点在于虚拟化出一张表,即给自身的表定义一个别名
两个数据库的数据要关联,需要加前缀,意思就是所属数据库,用户,表名等,按上面他们写的那个查询语句就可以了,不然的话是不行的,还有一个很笨,把其中一个库里的数据导到别一个数据库中去,两个表就可以直接关联
关联在Oracle数据查询时会经常用到,灵活的应用关联可以解决很多实际应用的问题下面给出一些示例:
建表
create table ab
(
ab_id number(5),
ab_name varchar2(30)
);
create table bb
(
bb_id number(5),
bb_name varchar2(30)
);
插入数据
insert into ab(ab_id,ab_name) values(1,'1ab_name');
insert into ab(ab_id,ab_name) values(2,'2ab_name');
insert into ab(ab_id,ab_name) values(3,'3ab_name');
insert into bb(bb_id,bb_name) values(1,'1bb_name');
insert into bb(bb_id,bb_name) values(2,'2bb_name');
insert into bb(bb_id,bb_name) values(4,'4bb_name');
insert into bb(bb_id,bb_name) values(6,'6bb_name');
等值关联(全关联)
select aab_id,aab_name,bbb_name from ab a,
bb b
where aab_id=bbb_id;
返回结果
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
返回两个表中所有能匹配的记录,不能匹配的记录不返回。
左关联
select ab_id,ab_name, bb_name
from ab a left join bb b
on aab_id=bbb_id;
同
select ab_id,ab_name, bb_name
from ab a , bb b
where aab_id=bbb_id(+);
返回结果
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
3 3ab_name
返回左边表的左右记录,在右边表中没有对应记录的右表字段显示为空。
右关联
select ab_id,ab_name, bb_name
from ab a right join bb b
on aab_id=bbb_id;
同
select ab_id,ab_name, bb_name
from ab a , bb b
where aab_id(+)=bbb_id;
返回结果:
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
4bb_name
6bb_name
返回右边表中所有的记录,在右边表不能匹配的记录行上,左边表对应的字段显示为空。
完全外关联
select ab_id,ab_name, bb_name
from ab a full join bb b
on aab_id=bbb_id;
返回结果
AB_ID AB_NAME BB_NAME
1 1ab_name 1bb_name
2 2ab_name 2bb_name
3 3ab_name
6bb_name
4bb_name
以上就是关于office2007里的access数据库,怎么对2张表进行关联查询啊全部的内容,包括:office2007里的access数据库,怎么对2张表进行关联查询啊、如何对两个数据库服务器上多个表进行关联查询、怎样把两个不同数据库中的表做关联查询呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)