我在一个sql服务器上有两个数据库,我必须将两个表从一个数据库服务器链接到另一个数据库服务器中的两个表以获取我需要的信息。问题是,当我尝试链接来自第二个数据库服务器的两个表时,查询将返回1000或更多的重复项。我如何在两个数据库上运行单个查询?所有表格都有repair_ord列。有人可以帮帮我吗?谢谢。多个数据库上的SQL查询
server 1 = CXADMIN
SERVER 2 = SAADMIN
这里是我的查询看起来像至今:
SELECT RF.REPAIR_ORD,
RH.RECV_UNIT,
RH.RECV_SERIAL_NBR,
RP.FAULT_CODE,
RP.REPAIR_ACTION_CODE,
CG.TASK_CODE
FROM CXADMIN.RO_FAILURE_DTL RF,
CXADMIN.RO_HIST RH,
[email protected] rp,
[email protected] cg
WHERE RF.REPAIR_ORD = RH.REPAIR_ORD
AND RP.REPAIR_ORD = CG.REPAIR_ORD
AND RF.FAILURE_CODE ='DISK'
AND RH.CURR_FACILITY_ID ='23'
AND RF.CREATED_DATE >'1-JUN-2010'
AND RF.CREATED_DATE < '1-JUL-2010'
AND ( CG.TASK_CODE ='PHMD'
OR CG.TASK_CODE ='PHSN'
OR CG.TASK_CODE ='CHMD'
OR CG.TASK_CODE ='CHSN')
为什么你不只是'联盟所有'他们呢? – zerkms 2011-05-09 01:43:44
使用JOIN时(您的查询使用ANSI-89 JOIN语法)会出现重复项,因为父记录具有多个子记录。我们不知道您的数据 - 注释掉表格,并逐渐添加它们以知道哪些连接负责。 – 2011-05-09 01:51:41
@zerkms,我试过联合功能,但我很困惑如何使用它在这个查询B/C所有表相同。他们只有repair_ord列相同。 – Justin 2011-05-09 02:28:27