SELECT a.merchant_id, a.merchant_name, COALESCE(b.total_sales, 0) AS total_sales_amount, COALESCE(c.total_refunds, 0) AS total_refund_amount, ROUND(COALESCE(d.avg_satisfaction, 0),2) AS average_satisfaction_score FROM merchants_underline a LEFT JOIN ( SELECT merchant_id, SUM(sale_amount) AS total_sales FROM sales_underline GROUP BY merchant_id ) b ON a.merchant_id = b.merchant_id LEFT JOIN ( SELECT merchant_id, SUM(refund_amount) AS total_refunds FROM refunds_underline GROUP BY merchant_id ) c ON a.merchant_id = c.merchant_id LEFT JOIN ( SELECT merchant_id, AVG(satisfaction_score) AS avg_satisfaction FROM satisfaction_underline GROUP BY merchant_id ) d ON a.merchant_id = d.merchant_id
表多但是实在吓唬人,把每个表该做的事情分别做好之后再进行表连结就好了