sql查询从一个数据库中选择一个值

时间:2011-01-05 05:56:58

标签: sql

我有两个数据库,我想从其中一个数据库中选择一个值.... 因为我想传递一个值,如果该值存储在数据库中,我想选择代表数据库中值的id。

这意味着操作就是......

首先我使用用户控件从一个数据库中选择一行数据... 在该行中有一个值(例如“apple”),我希望将此值(“apple”)传递给第二个数据库...在第二个数据库中,值(“apple”)具有id(例如“澳大利亚”)我希望查询搜索该id(“澳大利亚”)并在文本框中显示。

请帮帮我.... 感谢所有进步......

例如

first database

id     name      details
1      apple     sweet
2     orange     sweet

第二个数据库

id                  name          details
Australian        apple         sold
Indian            banana        sold

想象一下,有两个数据库.... 使用用户控件我从第一个数据库中选择第一行,我想将该值传递给第二个数据库,并从第二个数据库中找出id australian并在文本框中显示....

谢谢.........

4 个答案:

答案 0 :(得分:1)

只要为每个数据库使用完全限定的前缀,就可以在两个数据库之间进行连接。

答案 1 :(得分:0)

我认为你应该去加入,你的查询应该看起来像这样

SELECT SecondDataBase.TableName.Id  
FROM   FirstDatabase.TableName INNER JOIN
       SecondDataBase.TableName ON FirstDatabase.TableName.["Column contains Apple"] = SecondDataBase.TableName.["Column contains Apple"]

答案 2 :(得分:0)

只要一个数据库服务器在调用数据库服务器中具有注册引用,完全限定的表名称(包括服务器名称,数据库名称,模式和表(例如,MySqlServerInstance1.mydb1.dbo.table1)名称)肯定会起作用。有关使用MS SQL Server时必须执行的操作,请参阅此内容:http://msdn.microsoft.com/en-us/library/ms188231.aspx

答案 3 :(得分:0)

在MSSQL中,您通常使用SchemaName.TableName

引用表
dbo.Fruit

数据库由连接字符串自动确定。 FirstDatabase

因此,当您使用dbo.fruit时,服务器会自动将数据库名称附加到表中,如

FirstDatabase.dbo.Fruit

如果用户帐户具有权限,则可以通过指定数据库

从完全不同的数据库中进行选择
SecondDatabase.dbo.FruitSales

更进一步,如果您通过指定链接服务器名称(如

)设置链接服务器,则可以从完全不同的SQL服务器中进行选择
SecondServer.ThirdDatabase.dbo.FruitShipping

因此,您可以在数据库中的表和第二个数据库中的表(如

)之间进行连接
SELECT * 
FROM FirstDatabase.dbo.Fruit AS F INNER JOIN 
     SecondDatabase.dbo.FruitSales AS FS ON F.Something = FS.Something

但您甚至可以在数据库中的表和不同服务器上的表之间加入,如

SELECT * 
FROM FirstDatabase.dbo.Fruit AS F INNER JOIN 
     SecondServer.ThirdDatabase.dbo.FruitShipping AS FS ON F.Something = FS.Something