php - 如何在 mysql 中合并 -all- 表?
问题描述
我希望为 100 个城市创建一个关于 GDP、人口、CPI 等的数据库。此外,用户可以在 HTML 中提交他需要的变量。目标 1:最终用户可能会询问 2017 年所有 100 个城市的 GDP、pop、CPI。目标 2:最终用户询问 city_1 在 2000-2017 年(整个期间)的 GDP、pop、CPI...。我决定为每个城市创建一张表。在城市中,年份、GDP、pop、cpi 有几个字段......因此,可以通过以下方式实现目标 2:我可以从最终用户输入的框中收集值,即: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"的表,问题就解决了。但是,因为有这么多城市,我不确定这是否是一一键入所有合并命令的唯一方法,难道没有任何代码可以在一个数据库中“合并所有”吗?如果您可以帮助我处理合并部分甚至如何构建数据库,请多谢转发。
解决方案
您的数据应该在一个表中,看起来像这样:
桌子cities
| 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
和
SELECT * FROM cities WHERE city = 'London' AND year BETWEEN 2016 AND 2018;
// Get all data for London for years 2016-2018
推荐阅读
- javascript - 如何使用 NODEJS 和 FileStream 将对象附加/添加到 JSON 对象中的特定对象
- php - 如何提取这些文本?
- python - 使用 URL 和工作表 ID 访问电子表格内的工作表
- list - Haskell 中的字数统计
- powershell - Powershell 重试逻辑脚本审查
- azure - Azure CosmosDB 未在 Where 子句中返回带有 UDF 的结果
- python - 与多处理一起运行两个函数
- javascript - 如何在 JavaScript 中制作一个给定字符串中的辅音加倍的程序?
- java - 如果使用 volley 库有新的响应数据,如何检查更改?安卓工作室
- google-sheets - 在另一列中的某些值之间查找相同的值