gpt4 book ai didi

多个数据库的 SQL 查询

转载 作者:行者123 更新时间:2023-12-02 09:34:05 25 4
gpt4 key购买 nike

我在一台 SQL 服务器上有两个数据库,我必须将一台数据库服务器中的两个表链接到另一台数据库服务器中的两个表才能获取我需要的信息。问题是,当我尝试从第二个数据库服务器链接两个表时,查询返回 1000 个或更多的重复项。如何在两个数据库上运行单个查询?所有表都有一个共同的 Repair_ord 列。有人可以帮帮我吗?谢谢。

服务器 1 = CXADMIN服务器 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,
saadmin.sa_repair_part@elgsad rp,
saadmin.sa_code_group_task_dtl@elgsad 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')

最佳答案

我认为重复问题不是连接两个数据库的问题,而是首先在于您的连接。我认为您可能需要 INNER 或 OUTER 连接来处理链接。至于从两个不同的数据库获取数据,语法相当简单。您只需添加服务器名称点数据库名称点所有者名称点表名称。

例如:

SELECT firstdb.*, seconddb.*
FROM Server1.Database1.dbo.myTable AS firstdb
INNER JOIN Server2.Database2.dbo.myTable AS seconddb
ON firstdb.id = seconddb.id

在您的示例中,听起来您的链接可以正常工作,但在 Repair_ord 字段上存在连接问题。虽然我不知道你的架构,但我猜想这个链接应该是一个 INNER JOIN。如果您只是在 FROM 语句中添加两个表,而没有正确执行 WHERE 语句,那么您将遇到像您所描述的那样的麻烦。

我建议您简化此设置并将其放入测试环境(在一个数据库上)。尝试四表连接,直到正确为止。然后增加多数据库调用的复杂性。

关于多个数据库的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com