php - PHP-如何合并/加入 MySQL 表?
问题描述
我正在尝试使用 MySQLi 查询在 PHP 中合并两个表。我有一个带有 table2 的数据库,其中包含: Country|Region(means Continent)|Value|Area(means Total, Rural or Urban)
我需要按区域对值求和,因此我执行:
$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 行,其中包含大陆的相应值。现在,我想获得一个包含所有国家及其对应大陆价值的表格,我的意思是,如果我在 table2 中有西班牙及其价值,现在我想要西班牙与相关的汇总欧洲价值。
我正在尝试执行此代码:
$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和查询结果的结构
解决方案
我认为您误解了 a 的join
作用。它不会将多个查询组合在一起。
如果我正确理解您的问题,那么您只有 1 个名为table2
. 在这种情况下,您可能不需要join
.
如果您想查看country
、region
和它sum
的值,那么您可以使用group by
Country
和Region
。
SELECT Country, Region, sum(Value)
FROM table2
GROUP BY Country, Region
WHERE Region = 'Europe and Central Asia'
;
如果您想查看region
及其sum
值,那么您可以group by
Region
.
SELECT Region, sum(Value)
FROM table2
GROUP BY Region
;
如果这不是您想要的,请编辑您的问题并向我们展示所需输出的示例。就目前而言,您的要求尚不清楚。
所需输出的示例将帮助我们回答您的问题。
+--------------+------+ | 地区 | 总和 | +--------------+------+ | 欧洲和中亚| 68.0 | | 非洲 | 59.5 | | 阿拉伯国家 | 46.0 | +--------------+------+
推荐阅读
- node.js - 谷歌身份验证挂起等待响应
- amazon-web-services - 如何在 cognito 上创建自定义用户池,并将其连接到您的应用程序
- vim - 如何在vim中自动生成像IDEA这样的局部变量
- javascript - 加载动态 html jQuery 更改 GET 脚本路径
- macos - UNUserNotificationCenter 总是拒绝授权
- java - 堆叠新阶段而不是叠加
- python - 海龟图形 begin_fill() 函数在 MAC 上无法正常工作
- java - 签名长度不正确:得到 768 但预期为 512,在 Java 中验证
- excel - 成对列的条件格式
- quarkus - 如何在 Quarkus 中设置日志记录级别?