跨数据库连表查询sql语句怎么写?

各位早上好,请教一个sql语句的问题,我这是A数据库查询职员信息EMP表,而这个fdepartmentid我是想显示为另外一个B数据库dept表的departid的值,那... 各位早上好,请教一个sql语句的问题,我这是A数据库查询职员信息EMP表,而这个fdepartmentid我是想显示为另外一个B数据库dept表的departid的值,那么我可以通过A数据库EMP表的fdepartmentid查询出部门名称departname,然后通过departname查询出B数据库depart表的departid,请问这sql语句该怎么写,求大神指导,这是我的sql语句:select fdepartmentid, from A..T_EMP 展开
 我来答
仁昌爱娱乐
高粉答主

2020-01-23 · 专注关心娱乐
仁昌爱娱乐
采纳数:760 获赞数:459847

向TA提问 私信TA
展开全部

工具/材料:Management Studio。 

1、首先在桌面上,点击“Management Studio”图标。

2、之后在该界面中,点击左上角“新建查询”选项。 

3、接着在该界面中,输入跨数据库连表查询的sql语句“select a.name as aname ,a.grade as bgrade ,b.name as bname,b.grade as bgrade from LGEMPS.dbo.test2 as a, test.dbo.rss as b where a.name = b.name;“。

4、然后在该界面中,点击左上方“执行”按钮。 

5、最后在该界面中,显示跨数据库连表查询成功。

射手幽灵伊
推荐于2017-11-26 · TA获得超过2716个赞
知道大有可为答主
回答量:4955
采纳率:81%
帮助的人:1965万
展开全部
通过fdepartmentid查询出部门名称departname,这个部门名称在A库上也有了吧,假设部门名称存在A库的表T_DEPT中。

select a.fdepartmentid,b.departname,c.departid
from A..T_EMP a join A..T_DEPT b on a.fdepartmentid = b.fdepartmentid
join B..depart c on b.departname = c.departname
追问
这样是可以查询出B数据库的departid,不过只有一条数据,你能不能远程给我看一下?454833459
追答
因为都是一一对应的,所以只有一条。

select a.fdepartmentid,b.departname,c.departid
from A..T_EMP a left join A..T_DEPT b on a.fdepartmentid = b.fdepartmentid
left join B..depart c on b.departname = c.departname

这样,可以查出所有的员工和有对应的deptid
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen_hongyang
2013-09-03 · TA获得超过5447个赞
知道大有可为答主
回答量:2790
采纳率:91%
帮助的人:866万
展开全部
这样应该符合你要求:
select fdepartmentid,departname from A..T_EMP,opendatasource('SQLOLEDB','Data Source=数据库B的IP;User ID=sa; Password=数据库B密码').数据库..dept
where fdepartmentid = departid
---或者写你需要的条件

远程数据库操作:opendatasource('SQLOLEDB','Data Source=数据库B的IP;User ID=sa; Password=数据库B密码').数据库..dept
追问
不能直接查询出departname的,它是在depart表里面,首先查询出fdepartmentid作为条件再查询出departname作为条件查询出B数据库的depart表的departid
追答
一般ID是唯一而且对应的才对的。
select fdepartmentid , b.departid from A..T_EMP,A..T_DEPT as a,opendatasource('SQLOLEDB','Data Source=数据库B的IP;User ID=sa; Password=数据库B密码').数据库..dept as b
where fdepartmentid = a.departid
and a.departname = b.departname
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-03
展开全部
SELECT * FROM SBOFL..table1 LEFT JOIN SBOFK..TABLE2 ON ...
SBOFL和SBOFK代表两个数据库
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式