[英]Mysql query three tables
我正在嘗試編寫一個連接三個表的查詢。 如您在下圖所見,我有:
我需要得到一個按類別分類費用的結果表(圖像上的結果表)。
select users.email,
(
SELECT IFNULL(sum(expenses.amount),0)
FROM expenses
JOIN expense_categories as cat
ON cat.id = expenses.category_id
AND cat.type = 'home'
WHERE expenses.user_id = users.id
) as 'home expenses'
from users
該查詢可以正常工作,但是我確定這不是正確的方法。
你能幫助我嗎?
非常感謝
您想要的查詢具有join
和一個聚合:
SELECT u.id, u.email,
SUM(CASE WHEN ec.type = 'home' THEN e.amount ELSE 0 END) as home,
SUM(CASE WHEN ec.type = 'job' THEN e.amount ELSE 0 END) as job
FROM users u LEFT JOIN
expenses e
ON u.id = e.user_id LEFT JOIN
expense_categories ec
ON ec.id = e.category_id
GROUP BY u.id, u.email;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.