0

您好,我正在开发一个数据来自 MSSQL 数据库的应用程序。在这里使用 php odbc 连接,我获得了使用应用程序所需的所有数据。但现在我有一个问题:

我在找:

来自 mssql(假设)mssql_Table_A 的所有数据将在此应用程序中列出,每一行都将带有复选框,因此用户可以检查所需的数据,在检查后当他点击保存检查数据将存储在本地 MySQL 数据库中(假设)mysql_table_A。

所以下次当他再次想要更多的数据时,这个应用程序将列出 mssql_table_A 中不存在于 mysql_table_A 中的所有数据。

问题是:

如果两个 dataflwo 都来自 MYSQL,我会通过使用 mysql 选择查询轻松地做到这一点

mysql_query("SELECT * FROM mysql_table_a WHERE NOT EXISTS (SELECT * FROM mysql_table_B WHERE thisID != thatID)")

但是在这里我如何检查mysql表中是否存在数据并列出odbc mssql数据库中的数据。

请帮我解决这个问题。

谢谢你..

4

2 回答 2

1

您需要使用mssql_sqlsrv_PDO函数连接到 MSSQL。mysql_函数严格用于 MySQL。

如果要从两者中获取数据,则需要两个单独的连接。

或者,您可以使用 ODBC 连接从 MSSQL 连接到 MySQL,并在 MSSQL 端执行查询。

于 2012-11-28T18:53:05.680 回答
0

其他答案已经告诉您如何连接两个数据库,但根据您的评论,您仍然想知道如何进行比较。

我必须假设您至少有一列可以唯一标识 table_a 中不在 table_b 中的行。如果您像一个答案所说的那样在 MS SQL Server 中链接 mysql,您可以

select * from mssql.table_a where unique_column not in (select unique_column from mysql.table_b)

但这很有效,因为 mssql 链接到 mssql 中的 mysql 即,您可以执行一个查询,mssql 将为您执行连接。

如果由于某种原因您不能或不想通过链接表将 mysql 链接到 ms sql,最简单的方法是在 table_a 中有某种时间戳。假设写入 table_a 的每条记录都有插入时间的时间戳:

mysql connection does select max(timestamp) into X from mysql.table_b
mssql connection does select * from mssql.table_a where timestamp > X

如果我们对您的数据有更多了解,可能还有其他方法。

于 2012-11-29T09:18:54.030 回答