Mysql 复杂sql查询中的左连接

Mysql 复杂sql查询中的左连接,mysql,left-join,Mysql,Left Join,嗨,伙计们,我有个问题 SELECT currency_code, SUM( CASE WHEN TYPE = 'cash_in' THEN amount END ) AS cash_in, SUM( CASE WHEN TYPE = 'cash_out' THEN amount END ) AS cash_out, SUM( CASE WHEN TYPE = 'cash_in' THEN amount ELSE - amount END ) AS balance FROM tb_cash_tr

嗨,伙计们,我有个问题

SELECT currency_code, SUM(
CASE
WHEN TYPE = 'cash_in'
THEN amount
END ) AS cash_in, SUM(
CASE
WHEN TYPE = 'cash_out'
THEN amount
END ) AS cash_out, SUM(
CASE
WHEN TYPE = 'cash_in'
THEN amount
ELSE - amount
END ) AS balance
FROM tb_cash_transaction
LEFT JOIN tb_currency ON tb_currency.CURRENCY_ID = tb_cash_transaction.CURRENCY_ID
WHERE TYPE IN (
'cash_in', 'cash_out'
)
GROUP BY currency_code
这将输出以下内容:

问题是查询不显示另一种货币代码KRW,该货币代码在tb\U cash\U交易中没有数据。以tb_货币表示的示例

如何解决这个问题?

试试这个

SELECT currency_code, SUM(
CASE
WHEN TYPE = 'cash_in'
THEN amount
END ) AS cash_in, SUM(
CASE
WHEN TYPE = 'cash_out'
THEN amount
END ) AS cash_out, SUM(
CASE
WHEN TYPE = 'cash_in'
THEN amount
ELSE - amount
END ) AS balance
FROM tb_currency 
LEFT JOIN tb_cash_transaction ON tb_currency.CURRENCY_ID = tb_cash_transaction.CURRENCY_ID AND tb_cash_transaction.TYPE IN (
'cash_in', 'cash_out'
)
GROUP BY currency_code