0
我的查詢基於炒鍋表(三個部分)的結果應該是13000,但我得到39000應用DISTINT不工作
# Order table
-------------------------------------------
| Id | order | Name | Fee |
-------------------------------------------
| 1 | SELECT STATEMENT | ab | 13000 |
-------------------------------------------
# Work table
-----------------------------
| Id | user id | order id |
-----------------------------
| 1 | 123 | 1 |
| 2 | 123 | 1 |
| 3 | 123 | 1 |
-----------------------------
# Query
SELECT o.order_id, SUM(o.fee) AS total_words
FROM users AS u
LEFT JOIN works AS wr ON wr.user_id = u.id
LEFT JOIN orders AS o ON o.order_id = wr.order_id
WHERE u.id = 123
# Output =>
Array
(
[order_id] => 1
[fee] => 39000
)
我試圖總結DISTINCT費然後分組,但是我得到相同的結果。
你的表的別名都搞砸了。用於「a」的別名是什麼表? –
Cheers @SameerMirji它的'user' as'u' – Fury
因爲(user_id,order_id)不是唯一的,所以'works'表的數據是你的結果的三倍。 「GROUP BY」只會幫助你,如果你是在'work.id'上組合的話。# – Uueerdo