안녕하세요. 시간 내 주셔서 대단히 감사합니다. 저는 SQL Server 2008을 사용하고 있습니다. 제 질문은 다음과 같습니다 :JOIN 문을 사용하여 다른 데이터베이스에있는 테이블을 쿼리하는 모범 사례
데이터베이스가 3 개 있습니다. Q_DB
, CAN_DB
, USA_DB
입니다. CAN_DB
및 USA_DB
은 동일한 표가 있지만 두 개의 다른 국가를 나타냅니다.
Q_DB
에는 대기열 테이블이 있습니다. 하나 개의 테이블은 ACCOUNTS
라고 관심있는 열은 ACCOUNTID
내가 ACCOUNTS
의 분야에서 다른 두 데이터베이스의 정보를 조회 할
SERVER
입니다됩니다. 예는 다음과 같습니다
Q_DB.dbo.ACCOUNTS
- ID123 CAN_DB
- ID456 USA_DB
- ID789 CAN_DB 내가, 내가이 방법을 수행 할 수 있습니다 알고
하지만 그 결과를 얻기위한 다른 방법이 있는지 궁금합니다.
SELECT ACTNAME, AMTDUE, SHIPCOUNTY
FROM CAN_DB.dbo.Accts
WHERE ACCTID IN(SELECT ACCOUNTID FROM Q_DB.dbo.ACCOUNTS WHERE SERVER IN('CAN_DB')
UNION ALL
SELECT ACTNAME, AMTDUE, SHIPCOUNTRY
FROM USA_DB.dbo.Accts
WHERE ACCTID IN(SELECT ACCOUNTID FROM Q_DB.dbo.ACCOUNTS WHERE SERVER IN('USA_DB')
어떤 도움이나 의견이나 제안이 있으면 감사하겠습니다. 감사합니다.
당신은 당신이 UNION에 두 개의 서로 다른 쿼리의 결과를 원하는 말, 당신은 궁금되어있다 UNION을 사용하는 것보다 더 좋은 방법입니까? 네가 기대하고있는 것이 확실하지 않다. – cadrell0
SQL Server ** 2010 ** ** - 2000, 2005, 2008, 2008 R2 및 2012 버전이 있지만 2010 버전은 없습니다. –
UNION과 함께 사용하는 것이 가장 현명한 방법인지 또는 다른 방법을 사용하는 경우 UNION을 제거 할 수 있는지 확인하려고합니다. (기본적으로 코드를 다시 작성하기 때문에) 그리고 시간 주셔서 감사합니다. – jnoel10