Php 如何在mysql中合并所有表?
我希望为100个城市建立一个关于GDP、人口、CPI等的数据库。此外,用户还可以在HTML中提交所需的变量。 目标1:最终用户可能要求2017年所有100个城市的GDP、pop和CPI。 目标2:最终用户要求GDP、pop、CPI。。。2000-2017年(整个期间)的城市1。 我决定为每个城市创建一个表。在城市中,有几个字段表示年份、GDP、pop、cpi。。。 因此,目标2可以通过以下方式实现:我可以从最终用户输入的框中收集值,即:Php 如何在mysql中合并所有表?,php,mysql,database,Php,Mysql,Database,我希望为100个城市建立一个关于GDP、人口、CPI等的数据库。此外,用户还可以在HTML中提交所需的变量。 目标1:最终用户可能要求2017年所有100个城市的GDP、pop和CPI。 目标2:最终用户要求GDP、pop、CPI。。。2000-2017年(整个期间)的城市1。 我决定为每个城市创建一个表。在城市中,有几个字段表示年份、GDP、pop、cpi。。。 因此,目标2可以通过以下方式实现:我可以从最终用户输入的框中收集值,即:category{all,GDP,pop},city{all
category{all,GDP,pop},city{all,city_1,city_2},time{all,2017,2016,…}。
$query="SELECT * FROM $query where year=$time";
$qry_result=$mysqli->query($query);
但是,我不确定如何显示目标1。因为可能有成百上千的城市,所以这似乎不是列出所有表格的正确方式。
我想我需要一些代码,比如
SELECT * FROM (SHOW TABLES) FROM $year=$time;
显然,这段代码无法工作。
所以,我认为合并可能有效。例如,如果我可以合并所有表或使用year=“value from user”合并所有表,问题就解决了。
然而,因为有这么多的城市,我不确定这是否是一个接一个地键入所有合并命令的唯一方法,难道没有任何代码可以在一个数据库中“合并所有”吗?
如果您能帮助我了解合并部分,甚至如何构造数据库,请转发。您的数据应位于单个表中,如下所示: 表
城市
| city | year | gdp | population | CPI |
-------------------------------------------
| London | 2016 | 1.0 | XXY | XXX |
| London | 2017 | 1.0 | XXY | XXX |
| London | 2018 | 1.1 | XXZ | XXX |
| Paris | 2018 | 1.1 | XXZ | XXX |
使用类似以下内容进行查询:
SELECT gdp FROM cities WHERE city = 'London' AND year = 2016;
// Get GDP for London in 2016
及
我决定为每个城市创建一个表,我认为这是错误的决定。创建一个包含所有城市的表但是如何处理年份?例如,用户要求查询一个城市过去50年的GDP,我仍然需要合并50年……不,在使用从庞大结果集筛选的数据库时,您不需要“合并”任何内容。所以,在这里,您使用所有年份并指定一个筛选规则,以仅选择实际请求的年份。您的意思是像select*FROM year1,year2?对于需要选择所有时段或所有城市的其他人,可以使用year=year,city=city@user9821719如果您需要表中的所有数据,只需执行“SELECT*from tablename”;无需添加额外的条件,如“year=year”
SELECT * FROM cities WHERE city = 'London' AND year BETWEEN 2016 AND 2018;
// Get all data for London for years 2016-2018