0

こんにちは、データがMSSQLデータベースから取得されるアプリケーションを開発しています。ここでは、php odbc接続を使用して、アプリで動作するために必要なすべてのデータを取得します。しかし今、私は問題を抱えています:

を探しています:

mssql(仮定)mssql_Table_Aからのすべてのデータがこのアプリに一覧表示され、各行にチェックボックスが表示されるため、ユーザーは[保存]をクリックすると、チェックしたデータがローカルのMySQLデータベース(仮定)mysql_table_Aに保存されます。

したがって、次に彼がさらにいくつかのデータを必要とするとき、このアプリはmysql_table_Aに存在しないmssql_table_Aからのすべてのデータを一覧表示します。

問題は次のとおりです。

両方のデータがMYSQLからのものである場合、mysqlselectqueryを使用して簡単にこれを実行できます。

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

しかし、ここでは、mysqlテーブルにデータが存在することを確認し、odbcmssqlデータベースからのデータを一覧表示するにはどうすればよいですか。

この問題を解決するのを手伝ってください。

ありがとうございました..

4

2 に答える 2

1

MSSQL に接続するにはmssql_sqlsrv_または関数を使用する必要があります。関数は厳密に MySQL 用です。PDOmysql_

両方からデータをフェッチする場合は、2 つの別個の接続が必要になります。

または、ODBC 接続を使用して MSSQL から MySQL に接続し、MSSQL 側でクエリを実行することもできます。

于 2012-11-28T18:53:05.680 に答える
0

他の回答は、2つのデータベースを接続する方法を示していますが、コメントに基づいて、比較の方法を知りたいと考えています。

table_bにないtable_aの行を一意に識別できる列が少なくとも1つあると想定する必要があります。1つの答えのようにMSSQLServerでmysqlをリンクすると、次のことが可能になります。

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

ただし、これは、mssqlがmssqlのmysqlにリンクされているために機能します。つまり、1つのクエリを実行でき、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 に答える