我想加入三張表。爲什麼我的JOIN在我的查詢中增加/可能乘以SUM?
第一張表是transactions
其中包含學生已獲得的「積分」的詳細信息。這裏的相關字段是(學生接收點)。
第二個表是purchases
其中包含學生已購買「獎勵」的細節。這裏的相關字段是Student_ID
和Reward_ID
。
決賽桌是rewards
其中詳細購買的獎勵。這裏的相關字段是Reward_ID
,Cost_to_User
(學生爲每個獎勵支付的價格,用於訂購GROUP_CONCAT
函數)和Title
。
我使用的查詢如下:
SELECT
t.Recipient_ID AS `ID` ,
SUM(t.Points) AS `Points Earned`,
SUBSTRING_INDEX(GROUP_CONCAT(DISTINCT r.Title ORDER BY r.Cost_to_User DESC SEPARATOR ', '),', ',3) AS `Rewards`
FROM `transactions` t
LEFT JOIN `purchases` p
ON t.Recipient_ID = p.Student_ID
LEFT JOIN `rewards` r
ON p.Reward_ID = r.Reward_ID
WHERE t.`Recipient_ID`
IN (90128, 90163, 33888, 34240, 137674)
GROUP BY t.`Recipient_ID`
出於某種原因,則Points Earned
輸出是大大錯誤的。 如果我刪除purchases
上的LEFT JOIN
,則Points Earned
輸出正確。
這是發送我的SUM
命令瘋狂的聯接是什麼?
編輯:請注意,我需要LEFT JOIN
命令,我想顯示所有的學生,包括那些沒有作出任何購買。在post中找到更多詳細信息。
由於提前,
你好再bluefeet。感謝您的支持! – dunc
@dunc歡迎您,很高興它現在工作。 – Taryn