如何从多个联接表

时间:2017-05-23 03:35:45

标签: mysql sql database orm

我有下表imagetable ...

这是我的询问......

SELECT w.name as wholesaler_name,
       w.outlet_id,
       w.distributor_name,
       w.distributor_id,
       wt.name as tipe_plus,
       v.target,
       v.week as periode,
       SUM(v.total_transaction),
       v.rebate,
       v.total_voucher
FROM voucher v
JOIN wholesalers w ON w.id=v.wholesaler_id
JOIN wholesaler_types wt ON w.wholesaler_type_id=wt.id
GROUP BY w.name,
         w.outlet_id,
         w.distributor_name,
         w.distributor_id,
         wt.name,
         v.target,
         v.week,
         v.rebate,
         v.total_voucher;

periode列中,一个2的同一时段(11.2017)有wholesaler_name。我希望如此,如果发生这种情况,total_transaction列将SUM()

我使用GROUP BY但结果仍然相同。

希望你能提供帮助。

感谢。

3 个答案:

答案 0 :(得分:0)

您可以使用子查询来简化您的sql语句。

select * from
(
    SELECT yourPK, v.week as periode, sum(v.total_transaction)
    FROM voucher v
    JOIN wholesalers w ON w.id=v.wholesaler_id
    JOIN wholesaler_types wt ON w.wholesaler_type_id=wt.id
   GROUP BY yourpk, periode
) SumResult
join TheOthersTable on SumResult.yourPK = TheOthersTable.yourPK

答案 1 :(得分:0)

检查结果中的其他列。 例如,如果一个col

答案 2 :(得分:0)

chek total_vouchers专栏。

在您的查询中,如果total_vouchers的{​​{1}}相同,那么就可以了,因为您的查询最后一步会希望按11.2017进行分组,在您的结果链接中我看不到{{ 1}},如果它们与total_vouchers不相同,则从total_vouchers中排除该列,并在{{}中选择或将该列放入Sum(),Count()....(聚合函数) 1}}部分