我正在使用AS400 7.1版。
拥有以下内容:
ServerA(SA) - DatabaseA(DBA) - TableA(TA)
ServerB(SB) - DataBaseB(DBB) - TableB(TB)
SELECT A.*, B.*
FROM SA.DBA.TA A INNER JOIN SB.DBB.TB
ON A.PN=B.PN
WHERE A.PN='BFDKS';
从AS400中的两个不同服务器连接2个表的正确语法是什么?
我收到以下错误
关系数据库SA不在关系数据库目录中
答案 0 :(得分:2)
我非常确定Db2目前不适用于我...
3部分名称是i的新名称,据我所知仅限于
插入mylib.mytable (从remotedb.somelib.sometable中选择*);
请参阅CREATE TABLE with remote subselect
或者在触发程序中.. 见3-part names in triggers
LUW的Db2具有此类联合功能......
我所看到的一项工作是使用用户定义的表函数(UDTF)从远程Db2为i数据库返回行。
答案 1 :(得分:1)
DB2 for i不可行。但就像查尔斯说的那样,你可以做到:
-- run this instructions on server B
create table qtemp.SADBATA as (
SELECT A.* FROM SA.DBA.TA A
where A.PN='BFDKS'
) with data;
SELECT * FROM qtemp.SADBATA A INNER JOIN SB.DBB.TB ON A.PN=B.PN;