使用左联接获取计数的SQL查询

使用左联接获取计数的SQL查询,sql,sqlite,Sql,Sqlite,为什么此查询返回0?我想获得一些带有folderName“收件箱”的邮件。邮件和文件夹表通过FolderID连接 "SELECT COUNT(*) FROM Messages AS m \ LEFT JOIN Folders AS f \ ON m.FolderID = f.FolderID \ WHERE f.FolderName = 'INBOX'" 我确切地知道,

为什么此查询返回0?我想获得一些带有folderName“收件箱”的邮件。邮件和文件夹表通过FolderID连接

"SELECT COUNT(*) FROM Messages AS m \
                     LEFT JOIN Folders AS f \
                     ON m.FolderID = f.FolderID \
                     WHERE f.FolderName = 'INBOX'"
我确切地知道,有些邮件具有此文件夹ID。问题在于sql

SELECT COUNT(*) FROM Messages AS m 
                 INNER JOIN Folders AS f 
                 ON m.FolderID = f.FolderID 
                 WHERE UPPER(f.FolderName) = 'INBOX'

它需要是一个内部联接,并且根据SQL server设置的大小写敏感性,您可能需要考虑匹配大小写。

确定是否有文件夹名为INBOX first SELECT*FROM Folders,其中FolderName='INBOX',您的查询也应该是一个内部联接。无论是否存在匹配项,左联接都将返回消息。左联接和内部联接现在返回相同的数字。问题在于我的程序将收件箱改为“收件箱”。如何与区分大小写进行比较?您将需要一个内部联接,请参阅下面的答案以了解区分大小写。