PHP-如何合并/加入MySQL表?

时间:2018-06-13 13:32:17

标签: php mysql sql mysqli

我正在尝试使用MySQLi查询在PHP中合并两个表。我有一个包含table2的数据库,其中包含:Country | Region(指Continent)| Value | Area(表示Total,Rural或Urban)

enter image description here

我需要按区域对值求和,以便执行:

$query1 = mysqli_query($con,"SELECT  Country, Region, SUM(Value) as Value2 FROM table2 WHERE table2.Area='$area' GROUP BY (table2.Region IN ($region)) ");

$ query1包含5行,其中包含各大洲的相应值。 现在,我想获得一张包含所有国家及其相应的Continen值的表格,我的意思是,如果我在表格2中有西班牙的价值,现在我希望西班牙有相关的汇总欧洲值。

我正在尝试执行此代码:

$result = mysqli_query($con,"SELECT Country,Region FROM table2 WHERE Region IN ($region)");
$result = mysqli_query($con,"SELECT Country,Value FROM $result INNER JOIN $query1 ON $result.Region = $query1.Region");

我认为错误是我使用$ result作为表,也许这个对象不是表,但我不知道。我在执行最后一个查询时遇到致命错误,但它不起作用。

如何获得具有聚合值(在query1中获得)和不同国家/地区的表?我认为主要问题是带有变量的sintax和查询结果的结构

1 个答案:

答案 0 :(得分:0)

我认为你误解了DEF 9874 GEH 11223344 的作用。它不会将多个查询组合在一起。

如果我正确理解您的问题,那么您只有一张名为join的表格。在这种情况下,您可能不需要table2

如果您想查看joincountry及其region值,则可以sum group byCountry

Region

如果您想查看SELECT Country, Region, sum(Value) FROM table2 GROUP BY Country, Region WHERE Region = 'Europe and Central Asia' ; 及其region个值,则可以sum group by

Region

如果这不是您想要的,请编辑您的问题并向我们展示所需输出的示例。目前看来,您的要求并不明确。

有助于我们回答您问题的所需输出示例。

+-------------------------+------+
|         Region          | Sum  |
+-------------------------+------+
| Europe and Central Asia | 68.0 |
| Africa                  | 59.5 |
| Arab States             | 46.0 |
+-------------------------+------+