2017-01-24 129 views
1

嗨,想知道是否有人可以用這個查詢來幫助我。我試圖從表格中顯示服務器中所有數據庫提交的提交數量。目標是顯示所有數據庫,但也顯示多少個數據庫。以下查詢允許我查看每個數據庫,但爲了時間的目的,我希望從所有數據庫中獲取信息。SQL查詢從所有數據庫中獲取數據

SELECT * 
FROM myforms 
WHERE datetime between '2017-01-01' and '2017-01-23' 

服務器規格: 數據庫客戶端版本的libmysql - 73年1月5日 PHP擴展:mysqli的

的目標,例如:

可以說這些都是數據庫

db_site1 
db_site2 
db_site3 

在每個表中都有一個名爲myforms的表,其中有一個名爲datefield的字段。

想要通過一個查詢獲取以下信息。

db_site1 - 5 (this being number of submissions from jan 1, 2017 to current date) 
db_site2 - 50 
db_site3 - 35 

回答

0

使用聯合從單個查詢中的差異表中收集結果。

(SELECT * FROM db_site1.myforms WHERE datetime between '2017-01-01' and '2017-01-23') 
UNION ALL 
(SELECT * FROM db_site2.myforms WHERE datetime between '2017-01-01' and '2017-01-23') 
UNION ALL 
(SELECT * FROM db_site3.myforms WHERE datetime between '2017-01-01' and '2017-01-23') 

注: - 對於此查詢您的數據庫用戶必須能夠訪問所有3個數據庫。 Union All將從結果中刪除重複項。如果你需要重複的結果,然後使用聯盟

+0

這是一個很好的選擇,但我有35個總數據庫。任何機會,你有更容易的東西:) – James

+0

@詹姆斯,或者在一個數據庫中創建一個視圖或存儲過程,然後使用單個查詢訪問。 –

+0

@詹姆斯或如果你害怕寫查詢,可以使用循環來創建查詢 –

相關問題