2012-03-27 8 views
0

db_mdone 및 db_mdtwo라는 서버 이름에 2 개의 데이터베이스가 있습니다. 각 데이터베이스의 열 중 하나는 이름이 같은 "전자 메일"입니다. 즉, 두 데이터베이스에는 서로 다른 열이 있습니다. 누군가가 열을 함께 일치시키고 레코드를 가져 오기 위해 SQL 쿼리에서 나를 도울 수 있습니까? db_mdone 데이터베이스의 레코드는 페이지의 상단에 표시되고 다른 레코드는 페이지의 맨 아래에 표시됩니다. 그들은 가입 할 필요가 없다. 감사합니다SQL 다른 데이터베이스에서 데이터 가져 오기

+0

당신은 무엇을 시도 했습니까? (db_mdtwo) 어떤 데이터베이스를 실행하고 있습니까 (MySQL, MSSQL, ORACLE?). 작업중인 쿼리를 게시하십시오. – GuZzie

+0

SQL = "SELECT * FROM db_mdone, db_mdtwo WHERE Email = Email"초보자입니다. –

+0

일을 배우는 중이며 sSQL = "SELECT * FROM tblmdfUK ORDER BY ID DESC"로 작동하도록했습니다. 이제 나는 이상에서 설명한 문제가있다 –

답변

3

어때요?

Select Email from db_mdone.dbo.firstTable 
union all 
Select Email from db_mdtwo.dbo.secondTable 
0

기본 구문은 매우 간단합니다. 예를 들어, 테이블 이름과 스키마에 서버 이름을 접두사로 붙입니다.

SELECT t1.Email 
FROM db_mdone.dbo.Table1 t1 
INNER JOIN db_mdtwo.dbo.Table2 t2 ON t2.Email = t1.Email 

은 (난 당신이 자신의 실제 쿼리를 해결해야합니다, 그래서 '까지 일치하는'무슨 뜻인지 모르겠어요.

내가 말할 것이이 일에 대해 갈 수있는 가장 좋은 방법 당신이 당신의 연결 문자열이 데이터를 불러 오는 가장 효율적인 방법은 아니다

sp_addlinkedserver 'db_mdtwo' 
+0

고마워. 데이터베이스는 ftp의 같은 폴더에 있습니다. –

+0

문제가 있습니다. 데이터베이스 연결은 어떻습니까? 어떻게 동시에 두 데이터베이스에 연결하려고합니까? –

+0

환경에 대한 자세한 정보를 제공해야합니다. 당신은 'sql'과 asp-classic을 언급 했으므로 SQL 서버를 사용했습니다 - 액세스 나 다른 것을 사용하는 경우 현재 연결 문자열 (민감한 정보 제외)과 함께 질문에 추가하십시오. –

0

db_mdone하는 것입니다 가정 처음에 두 번째 서버를 연결하는 sp_addlinkeddserver을 사용해야 할 수도 시험 :하는 저장에 그것을 포장하지만, 당신을위한 시작입니다.



<html> 
<body> 

<% 
'============================================================= 
' xxx.xxx.xxx.xxx = IP Address for the SQL Server 
' yyyyyyyy = User Id for the database 
' zzzzzzzz = Password for the database 
'============================================================= 
strWebDSN = "Provider=SQLOLEDB;server=xxx.xxx.xxx.xxx;uid=yyyyyyyy;pwd=zzzzzzzz;database=db_mdone" 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open strWebDSN 
set rs = Server.CreateObject("ADODB.recordset") 
rs.Open "Select * from DATABASETABLENAME", conn 

do until rs.EOF 
     for each x in rs.Fields 
      Response.Write(x.name) 
      Response.Write(" = ") 
      Response.Write(x.value & "<br />") 
     next 
     Response.Write("<br />") 
     rs.MoveNext 
loop 

rs.close 
conn.close 
%> 

<hr> 

<% 
'============================================================= 
' xxx.xxx.xxx.xxx = IP Address for the SQL Server 
' yyyyyyyy = User Id for the database 
' zzzzzzzz = Password for the database 
'============================================================= 
strWebDSN = "Provider=SQLOLEDB;server=xxx.xxx.xxx.xxx;uid=yyyyyyyy;pwd=zzzzzzzz;database=db_mdtwo" 
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open strWebDSN 
set rs = Server.CreateObject("ADODB.recordset") 
rs.Open "Select * from DATABASETABLENAME", conn 

do until rs.EOF 
     for each x in rs.Fields 
      Response.Write(x.name) 
      Response.Write(" = ") 
      Response.Write(x.value & "<br />") 
     next 
     Response.Write("<br />") 
     rs.MoveNext 
loop 

rs.close 
conn.close 
%> 


</body> 
</html> 



0

언급 한 테이블 이름이 없습니다. one of the columns in each DATABASE을 이메일이라고합니다. 난 당신이 중간 : 그럼에도 불구하고

에 테이블이 상상 마지막 문을 처리하지 않는 지금까지 제공하는 모든 솔루션 : 다시 The records of db_mdone database is going to show at the top of the page and the records of the other is going to show at the bottom of the page

는, 그하여 함께 모든 기록을 원하는 상상 , 먼저 db_mdone에있는 것들과 db_mdtwo에있는 것들. 페이지의 별도 위치에 실제로 원하는 경우 두 개의 별도 쿼리와 응용 프로그램에서 처리해야합니다. 첫째오고있다

select Email, 0 as order_column from db_mdone 
UNION 
select Email, 1 as order_column from db_mdtwo 
ORDER BY order_column 

이런 식으로, 0 (db_mdone) 모든 기록 :

그래서, 각각 그래서 당신은 결과를 주문하는 데 사용할 수 있습니다 선택에 간단한 정수 열을 추가 제안 있음을 달성하기 위해

관련 문제