从两个表(销售/费用)中选择具有相同列名(总计)

时间:2014-03-04 20:05:19

标签: php mysql sql

我尝试了一些东西,到目前为止,这是唯一没有抛出错误的东西,但结果不会在我的页面上回显,所以我不太清楚发生了什么。

$query = "SELECT SUM(sales.total) AS sales_total, SUM(expenses.total) AS expenses_total FROM sales,expenses";

其他所有内容都已完美设置,我之前从未调用多个表。

E.g。我如何在我的HTML中回应:

<? echo $row['SUM(sales_total)']; ?>
<? echo $row['SUM(expenses_total)']; ?>

谢谢!

编辑:附上我的废话图片:)enter image description here

2 个答案:

答案 0 :(得分:0)

这是一个笛卡尔联接,不会为您提供所需的结果。

$query = "SELECT SUM(sales.total) AS sales_total, SUM(expenses.total) AS expenses_total FROM sales,expenses";

您需要阅读内部联接以正确执行此操作。没有更多细节,我不能建议你如何修复该查询,除了做两个查询,每个表一个。由于您要为每个字段指定AS子句,因此您需要将回声修改为:

<? echo $row['sales_total']; ?>
<? echo $row['expenses_total']; ?>

希望有所帮助!

更新:修改查询以产生所需的结果:

$query = "SELECT sales_summary.sales_total,
                 expenses_summary.expenses_total 
          FROM (SELECT SUM(sales.total) AS sales_total 
                  FROM sales) sales_summary, 
               (SELECT SUM(expenses.total) AS expenses_total 
                  FROM expenses) expenses_summary";

答案 1 :(得分:0)

可能你应该使用两个单独的查询

否则你会得到笛卡尔积。

更多信息:http://en.wikipedia.org/wiki/Join_(SQL)