如何从两个数据库中提取数据?(100分)

  • 主题发起人 主题发起人 ztp_sjw
  • 开始时间 开始时间
Z

ztp_sjw

Unregistered / Unconfirmed
GUEST, unregistred user!
目前有两个数据库(Insur01,Insur02),Insur01中有一表名为miPsn(个人信息表),
Insur02中有一表名为miCmp(单位信息表),如何用一条SQL语句来实现从两个数据库中提取
miPsn,miCmp中取出数据。请给一个例子!
好像加上数据库名出没有用,如:Select A.FPsnCode,B.FCompName from :Insur01:
miPsn A,:Insur02:miCmp b where a.FCompCode=b.FCompCode;
 
Select A.FPsnCode,B.FCompName from Insur01 A,Insur02 b where a.FCompCode=b.FCompCode;
如用Query.ParamByName方法,表名是不能使用变量的

对不起,看走题了
 
不可以这么做,必须要用到数据库链接!
一条SQL语句无法同时直接访问两个数据库。
 
select 表名.字段 from ''数据库1:表名'' join ''数据库2:表名''
on ……
 
select 表名.字段 from ''数据库1..表名'' join ''数据库2..表名''
on ……
 
可以,SQL Server中,select * from yourdatabasename..yourtablename
数据库和表名之间用两个点
Mysql中,用一个点就可以了
 
用DatabaseLink,如果数据库是Oracle。
其它UP
 
假设在insur01数据库中操作
1.必须将insur02中的表授权限,使insur01能访问.授权命令如下
grant select on micmp to insur01
此操作要在insur02表中执行
2.写查询语句,此操作在insur01表中执行
Select FPsnCode,micpm.FCompName from mipsn,insur02.micmp where .....
 
select * from servername@databasename:tablename;
 
在SQL2K 中:select * from insur1..miPsn,insur2..miCmp where insur1.column1=insur2.column2
在MYSQL 中:select * from insur1.miPsn,insur2.miCmp where insur1.column1=insur2.column2
在Oralc 中:我没有方法,不过可以通过Create Data base link 实现访问多database
 
用SQL Builder呀,既方便又直观。
 
如果是ORACLE数据库应该要用数据库莲
如果数据库莲建完闲太长可以使用同义词进行缩短,数据库莲上面已经有了
create synonym 同义词名(自己比较好记的) for 模式名.对象名@莲接名(就是你建的);
 
来晚啦!
 
后退
顶部