php - 如何合并 mysql 中的所有表?

标签 php mysql database

我希望创建一个关于100个城市的GDP、人口、CPI等的数据库。此外,用户还可以在 HTML 中提交他需要的变量。 目标1:最终用户可能会询问2017年所有100个城市的GDP、人口、CPI。 目标 2:最终用户询问 city_1 2000-2017 年(整个时期)的 GDP、人口、CPI...。 我决定为每个城市创建 1 个表。在城市里,有几个字段,分别是年份、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"的表,问题就解决了。 但是,因为城市太多,我不确定这是否是逐一键入所有合并命令的唯一方法,是否有任何代码可以在一个数据库中“合并所有”? 如果您能帮助我完成合并部分,甚至如何构建数据库,谢谢。

最佳答案

您的数据应位于单个表中,如下所示:

表格城市

| 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

关于php - 如何合并 mysql 中的所有表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50444114/

相关文章:

php - 如何限制进程使用(用户或进程)

MySQL 语法错误插入

database - Erlang:2 个网络服务器上的 2 个数据库?

mysql - SQL:将每个 ID 的值合并到一个变量中

java - 如何在 Java 中将 ImageInputStream 转换为 BufferedImage?

database - 如何为多个用户配置 phpMyAdmin - 每个用户只能访问他们的数据库

PHP 动态变量名

php - 尝试 SOAP 调用时对象引用未设置为对象错误的实例

javascript - td 为空时如何使 colspan 自动?

mysql select 不使用 unicode 字符 a ä, d ḏ, ŋ