簡體   English   中英

mysql查詢三張表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM