2012-11-28 82 views
0

你好我正在開發一個應用程序,其中數據來自MSSQL數據庫。這裏使用php odbc連接,我得到所有需要的數據與應用程序一起工作。但現在我有一個問題:需要幫助來解決mysql和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數據庫的數據。

請幫我解決這個問題。

謝謝。

+0

你使用的是mssql還是mysql? – Ibu

+0

即時通訊使用mysql來存儲檢查的數據,因爲所有數據都來自mssql,即時通訊連接通過php odbc到mssql來檢索所有數據,我會標記選定的數據在mssql本身,但我只提供讀訪問mssql數據庫。 – sravis

回答

1

您需要使用mssql_sqlsrv_PDO功能來連接MSSQL。 mysql_函數嚴格適用於MySQL。

您將需要兩個單獨的連接,如果你是從兩個獲取數據。

或者,您可以使用ODBC連接從MSSQL連接到MySQL並在MSSQL端執行您的查詢。

+0

我沒有retreiving數據的問題,你能告訴我如何檢查數據是否來自mssql存在於mysql中,如果存在,我可以跳過這些並只列出哪些或不存在。 odbc_exec($ odbc_conn,$ query) mysql($ query,$ mysqlConn) – sravis

+0

@sravis您可以將數據放入數組並比較數組。但是,如果您直接從MSSQL進行ODBC連接到MySQL,那將會更好。 – Kermit

+0

有大量來自mssql的數據(如每天超過1000條記錄),我有一個2不同的PHP連接1爲odbc和其他的MySQL,都運行良好,但我如何檢查如果記錄存在mysql表從mssql中獲取它?使用數組我不認爲這會是一個更好的主意,因爲有大量的數據,你能告訴我可以檢查mysql中現有記錄的查詢,然後列出來自mssql中不存在的記錄。 – sravis

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中有某種時間戳。比方說,每一個寫入表-A記錄有插入時的時間戳:

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

可能有其他的方法,如果我們知道更多的關於您的數據。