2010-08-10 63 views
4

[PHP]如何在一個語句中查詢來自兩個數據庫的數據?單個查詢中可能有多個數據庫?

請給我簡單的方法。以及如何連接2數據庫以使用它?

謝謝

+1

你在說什麼?你在使用MySQL嗎?你想要什麼數據? – jtbandes 2010-08-10 17:49:50

回答

4

有可能在一個查詢中使用數據庫表從不同的數據庫中,如果當前連接被允許訪問這兩個數據庫。

你只需要使用數據庫名稱的前綴每個表名:

SELECT * FROM `databasename`.`tablename` ... 
... LEFT JOIN `databasename_2`.`tablename`.... 
+0

不是每個表甚至。只有那些不在當前選定數據庫中的表;) – Mchl 2010-08-10 17:53:22

+1

如何連接以允許訪問這兩個數據庫?舉個例子 – Giffary 2010-08-10 17:55:21

+0

@Giffary:這取決於你連接的用戶在MySQL服務器上設置了什麼特權。 – Mchl 2010-08-10 18:00:54

3

一個MySQL中的術語「數據庫」是數據庫服務器上的邏輯單元。要從兩個單獨的數據庫中查詢表,請參閱Pekka的答案(儘管請注意限制適用 - 某些JOINS可能無法按預期工作。有關更多信息,請參閱MySQL文檔。)

如果要查詢兩個不同的數據庫服務器在同一個語句中,那麼答案是那是不可能的。您將不得不創建兩個單獨的連接,並分別查詢它們中的每一個。