我在服务器名称db_mdone和db_mdtwo上有2个数据库。 EACH数据库中的一列是同名的“电子邮件”。也就是说,两个数据库都有不同的列。有人可以帮我在SQL查询中将列匹配在一起并获取记录吗? db_mdone数据库的记录将显示在页面顶部,另一个记录将显示在页面底部。他们不需要加入。感谢
答案 0 :(得分:3)
这个怎么样?
Select Email from db_mdone.dbo.firstTable
union all
Select Email from db_mdtwo.dbo.secondTable
答案 1 :(得分:1)
基本语法非常简单,您可以在表名和模式前加上服务器名称,例如
SELECT t1.Email
FROM db_mdone.dbo.Table1 t1
INNER JOIN db_mdtwo.dbo.Table2 t2 ON t2.Email = t1.Email
(我不确定'匹配'是什么意思,所以你需要找出自己的实际查询。
执行此操作的最佳方法我会说是将其包装在存储过程中 - 您可能需要使用sp_addlinkeddserver将第二个服务器链接到第一个服务器,假设您的连接字符串是db_mdone
sp_addlinkedserver 'db_mdtwo'
答案 2 :(得分:0)
这不是检索数据的最有效方法,但它是您构建的开始。
<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>
答案 3 :(得分: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上添加一个简单的整数列,这样你就可以使用它来排序结果:
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)的记录都是第一个,所有记录都是1(db_mdtwo)之后