为空列选择MySQL Month()

为空列选择MySQL Month(),mysql,join,left-join,Mysql,Join,Left Join,我有个问题要问。当我使用左联接时,即使某些行中有空值,如何列出所有左表以显示数据 我的问题是: SELECT *, SUM(transactions.debit_credit) current_spending FROM (`budget`) LEFT JOIN `categories` ON `budget`.`category`=`categories`.`idcategory` LEFT JOIN `user_category` ON `budget`.`category`=`user

我有个问题要问。当我使用左联接时,即使某些行中有空值,如何列出所有左表以显示数据

我的问题是:

SELECT *, SUM(transactions.debit_credit) current_spending 
FROM (`budget`) LEFT JOIN `categories` ON `budget`.`category`=`categories`.`idcategory` 
LEFT JOIN `user_category` ON `budget`.`category`=`user_category`.`idcategory` 
LEFT JOIN `category_transaction` ON `budget`.`category`=`category_transaction`.`idcategory` 
LEFT JOIN `transactions` ON `category_transaction`.`idtransaction`=`transactions`.`idtransaction` 
WHERE `user_category`.`iduser` = '1' 
AND MONTH(transactions.transaction_date) = '11' 
GROUP BY `budget`.`idbudget`;
当我删除
和月份(transactions.transaction\u date)='11'
时,查询工作正常,接受它显示所有数据,而不是仅显示一个月的事务


帮助??拜托??知道吗???

你的
where
子句如何将你的
左联接变成
内部联接,因为你是根据联接表的条件过滤数据的

而是将该条件放在join的
on
子句中

SELECT *, SUM(transactions.debit_credit) current_spending 
FROM (`budget`) 
LEFT JOIN `categories` ON `budget`.`category`=`categories`.`idcategory` 
LEFT JOIN `user_category` ON `budget`.`category`=`user_category`.`idcategory` 
                         AND `user_category`.`iduser` = '1' 
LEFT JOIN `category_transaction` ON `budget`.`category`=`category_transaction`.`idcategory` 
LEFT JOIN `transactions` ON `category_transaction`.`idtransaction`=`transactions`.`idtransaction` 
                        AND MONTH(transactions.transaction_date) = '11' 
GROUP BY `budget`.`idbudget`;

请注意,transaction.transaction_date位于时间戳数据类型中。感谢您的帮助。我在select子句中添加了IFNULL()以获得结果。