2012-01-06 84 views
5

如何使用單個查詢兩個表,這是在不同的數據庫,是指兩個或多個表,選擇從不同的數據庫

SELECT table1.id, table1.name, table2.id, table2.telephone 
FROM table1, table2 
WHERE table1.id = table2.id 

這裏,table1table2在單獨的數據庫中。

+0

難道真是一個題外話? – 2016-02-20 21:43:13

回答

10

你可以做跨數據庫連接,沒問題。只需在數據庫名稱前加上表名。

SELECT t1.id, t1.name, t2.id, t2.telephone 
FROM db1.table1 t1 
INNER JOIN db2.table2 t2 on t1.id = t2.id; 

不過要小心權限。如果用戶無法訪問其中一個數據庫,則該選擇將失敗。

+0

如何用php寫它?請你舉個例子,如何在php中一次打開不同的兩個數據庫連接? – 2012-01-06 20:15:50

+0

只要執行這個SQL,它應該照原樣運行。 – 2012-01-06 20:16:47

+0

當我們同時使用兩個數據庫或者單個數據庫中的兩個表都很好時,是否有與速度相關的問題? – 2012-01-06 20:25:20

1

您需要使用完全合格的名字表以及字段/屬性:

SELECT table1.id, table1.name, table2.id, table2.telephone 
FROM db_1.table1, db_2.table2 
WHERE table1.id = table2.id 
+0

什麼是一個字段的回溯列名,例如$ Row ['column_name']? – 2012-01-08 07:02:40