比较两个不同类型的数据库表并比较它们的数据?

时间:2014-01-31 12:47:54

标签: mysql sql sql-server database

我有两个来自两个不同数据库的数据库表,一个在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`

这样我就可以获得当前的活动作业。

如何才能实现这一目标?

1 个答案:

答案 0 :(得分:2)

  1. 创建从MSSQL到MySQL的链接服务器。
  2. 访问MSSQL中的MySQL表 - 例如。 select * from openquery(test,'select * from MySQL_Table),Test是链接服务器名称,MySQL_Table是MySQL中的表
  3. 将上述查询的输出放入临时表。
  4. 将job_num和job上的MSSQL表临时连接到临时表。
  5. 可以以任何方式使用上述结果的输出。
  6. 更多地联系您的数据库管理员以执行上述活动。 请参阅此http://www.packtpub.com/article/mysql-linked-server-on-sql-server-2008以在MSSQL中创建链接服务器。