如何在mysql中合并-all-表?

时间:2018-05-21 07:41:56

标签: php mysql database

我希望为100个城市建立一个关于GDP,人口,CPI等的数据库。此外,用户可以用HTML提交他需要的变量。 目标1:最终用户可能要求2017年所有100个城市的GDP,流行,CPI。 目标2:最终用户在2000 - 2017年(整个期间)要求为city_1提供GDP,流行,CPI。 我决定为每个城市创建一张桌子。在这个城市,有几个领域的年份,GDP,流行,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 ="来自用户"的值合并,则问题就解决了。 但是,因为有这么多城市,我不确定它是否是逐个输入所有合并命令的唯一方法,是不是有任何代码来"合并所有&#34 34;在一个数据库内? 如果您可以帮助我完成合并部分甚至如何构建数据库,那么,谢谢。

1 个答案:

答案 0 :(得分:0)

您的数据应该在一个表中,看起来像这样:

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