使用左联接获取计数的SQL查询
为什么此查询返回0?我想获得一些带有folderName“收件箱”的邮件。邮件和文件夹表通过FolderID连接使用左联接获取计数的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'" 我确切地知道,
"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',您的查询也应该是一个内部联接。无论是否存在匹配项,左联接都将返回消息。左联接和内部联接现在返回相同的数字。问题在于我的程序将收件箱改为“收件箱”。如何与区分大小写进行比较?您将需要一个内部联接,请参阅下面的答案以了解区分大小写。