2017-01-24 132 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

@詹姆斯或如果你害怕写查询,可以使用循环来创建查询 –

相关问题