2012-02-28 81 views
0

我有一個MySQL數據庫實例。每個數據庫與相同的表結構相同,但存儲的數據不同。MYSQL查詢所有數據庫的記錄

例如:
數據庫db1具有表db1.client和,列db1.client.Iddb1.client.Namedb1.client.Address

數據庫db2具有表db2.client和,列db2.client.Iddb2.client.Namedb2.client.Address

數據庫db3具有表db3.client和欄目db3.client.Id,db3.client.Name,db3.client.Address

我想查詢並列出每個數據庫並顯示每個客戶表的名稱和地址。

我該怎麼做?

回答

0

難道他們都在不同的數據庫,或不同的表內的一個數據庫

如果是後者,可以使用UNION將查詢串起來,例如

SELECT Id, Name, Address 
FROM table1 
UNION 
SELECT Id, Name, Address 
FROM table2 

如果是前者(每個表是在不同的數據庫),你將有數據庫的名稱作爲這樣的修改:

SELECT Id, Name, Address 
FROM db1.table 
UNION 
SELECT Id, Name, Address 
FROM db2.table 
+0

這是我選擇後者。感謝您的建議。如果我的數據庫跨越十幾個說法呢?我可以爲每個數據庫使用循環而不是手動選擇每個數據庫嗎?我需要參與存儲過程嗎? – Ronnie 2012-02-28 00:47:30

+0

我認爲你必須爲每個數據庫編寫一個查詢(你可以隨時在代碼中生成查詢字符串)。 – 2012-02-28 01:09:43

0

看看mySQL Union文檔。

(SELECT name, address, ... FROM db1.client) 
UNION 
(SELECT name, address, ... FROM db2.client) 
UNION 
(SELECT name, address, ... FROM db3.client) 
相關問題