我有兩個表上(daily_book和extra_cost),這樣的結構是LEFT JOIN給出不正確的總和結果
daily_book
db_id | refund
1 | 7161
2 | 5980
extra_cost
ec_id | db_id | cost
1 | 1 | 156
2 | 1 | 123
3 | 2 | 100
4 | 2 | 120
所以我得到總退款金額和總成本值。
所以我的查詢是
$sql = "SELECT SUM(d.refund) AS refund, SUM(e.cost) AS e_cost FROM `daily_book` d LEFT JOIN extra_cost e ON (d.db_id = e.db_id) WHERE d.db_id > 0";
我得到的結果是26282退款和499的總成本;這是不正確的。
我想要的結果是13,141退款和499總成本。
你也可能得到一些http://dba.stackexchange.com/寶貴幫助 – zack6849
你應該更加熟悉SQL連接的工作原理然後再繼續聚合函數,如'sum()'。如果您從查詢中刪除了聚合函數調用,則會在JOIN結果中看到重複的行,從而爲您提供意外的退款總額。 – faintsignal