我有两个来自两个不同数据库的数据库表,一个在MYSQL中,一个在MSSQL中。两者都有类似的数据,一个基于另一个数据(只有一些共同的列)。它们位于两个不同的数据库中,因为一个是用于Crystal Reports(MSSQL)的远程系统,另一个用于运行我们的工作流管理系统(MYSQL)。
MSSQL数据库表 - Job_Operation
Job_OperationKey | Job_Operation | Vendor | Work_Center | Job | Etc...
MYSQL数据库表 - View_Job_Info
Id | job_num | posted_date | columns etc.. | latest_workorder_date |
我可以看到的最佳比较是在Job和job_num之间。这样,如果Job ####匹配job_num ####,则将两个表中的列制表成1个表。我不确定这是多么合理,因为我遇到内存问题,在使用Adminer时查询Job_Operation中的所有内容。
问题是,我不需要每一项工作,我只需要符合此特定查询的工作:
Select *
FROM view_job_info
WHERE (DATEDIFF(NOW(), latest_workorder_date) < 90 OR (DATEDIFF(NOW(), posted_date) < 30))
AND job_num > 2000`
这样我就可以获得当前的活动作业。
如何才能实现这一目标?
答案 0 :(得分:2)
select * from openquery(test,'select * from MySQL_Table)
,Test是链接服务器名称,MySQL_Table是MySQL中的表更多地联系您的数据库管理员以执行上述活动。 请参阅此http://www.packtpub.com/article/mysql-linked-server-on-sql-server-2008以在MSSQL中创建链接服务器。