如何从另一个数据库的select语句中选择数据?

时间:2017-03-16 01:55:18

标签: sql-server

这是我的疑问。

select * 
from dbase1.dbo.profile 
where dbase1.dbo.profile.id IN (select * from dbase2.dbo.profile where country='philippines');

1 个答案:

答案 0 :(得分:1)

如果它在同一台服务器上,则只能引用数据库名称。

 SELECT * FROM dbase1.dbo.profile a INNER JOIN dbase2.dbo.profile b
 ON a.id = b.id
 WHERE b.country = 'Philippines'

您的查询失败的原因是因为这部分

 where dbase1.dbo.profile.id IN (select * from dbase2.dbo.profile....

您正在将dbase1.dbo.profile.id与dbase2.dbo.profile上的所有列进行比较, 如果将其更改为

,您的查询将起作用
   where dbase1.dbo.profile.id IN (select id from dbase2.dbo.profile....

这样您的查询只会将一列与另一列进行比较

这假设dbase2.dbo.profile还有一个名为ID的列,它是您引用的一列