Php 选择所有值并同时汇总不同表中字段的值

Php 选择所有值并同时汇总不同表中字段的值,php,mysql,Php,Mysql,我有下面的查询,没有SUMamount作为总计,它工作正常。现在的问题是,我想从我的表凭证中选择所有值,同时想从另一个名为details的表中获取字段amount的总和 我尝试了上面的查询,但它显示了以下错误。请检查链接 将详细信息总和放入一个子查询中,然后根据该子查询离开JOIN。您的原始数据缺少任何GROUP BY子句作为您的总和 SELECT vouchers.*, /* from the subquery... */ detailssum.total FROM vouch

我有下面的查询,没有SUMamount作为总计,它工作正常。现在的问题是,我想从我的表凭证中选择所有值,同时想从另一个名为details的表中获取字段amount的总和

我尝试了上面的查询,但它显示了以下错误。请检查链接

将详细信息总和放入一个子查询中,然后根据该子查询离开JOIN。您的原始数据缺少任何GROUP BY子句作为您的总和

SELECT
  vouchers.*,
  /* from the subquery... */
  detailssum.total
FROM
  vouchers
  LEFT JOIN (
    /* Subquery gets total per voucher_no to join against vouchers */
    SELECT voucher_no, t_code, SUM(amount) as total FROM details GROUP BY voucher_no
  ) detailssum ON vouchers.voucher_no = detailssum.voucher_no
  LEFT JOIN accounts on accounts.code = vouchers.account_code 
WHERE (voucher_type='1' AND t_code=$code)

我们假设$code已经包含一个经过清理和边界检查的值

如果没有GROUP BY子句,您就无法执行聚合操作…您应该在WHERE子句WHERE COUNDER.TOUNDER_type='1'和TOUNDER.t_code=$code前面加上表名,同时避免在$code中插入SQL谢谢Michael的回复。我已经尝试了你的代码,但仍然得到一个错误。请检查链接。。是的,$code包含一个已经在我的“详细信息”表中的值。@black\u belt我假设t\u code是凭证中的一列。哪个表包含t_代码?如果是详细信息,那么我们需要稍微修改子查询。再次感谢。包含t_代码的表是详细信息。请告诉我在哪里修改子查询好吗。再次感谢:@black_belt请参见上文-t_代码只需添加到子查询选择列表中。
SELECT
  vouchers.*,
  /* from the subquery... */
  detailssum.total
FROM
  vouchers
  LEFT JOIN (
    /* Subquery gets total per voucher_no to join against vouchers */
    SELECT voucher_no, t_code, SUM(amount) as total FROM details GROUP BY voucher_no
  ) detailssum ON vouchers.voucher_no = detailssum.voucher_no
  LEFT JOIN accounts on accounts.code = vouchers.account_code 
WHERE (voucher_type='1' AND t_code=$code)