sql
  • sqlite
  • 2012-08-15 119 views 0 likes 
    0

    为什么此查询返回0?我想获得一些消息,其中包含文件夹名称'INBOX'。消息和文件夹表格通过FolderID连接。通过左连接计算SQL查询

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

    我完全知道,有这个文件夹ID的消息。问题出在sql。

    +2

    确定存在文件夹名称为INBOX的文件夹首先SELECT * FROM文件夹WHERE FolderName ='INBOX' – bleeeah 2012-08-15 12:43:28

    +1

    您的查询也应该是INNER JOIN。无论是否匹配,LEFT JOIN都会返回消息。 – bleeeah 2012-08-15 12:46:08

    +0

    现在,LEFT和INNER JOIN返回相同的数字。问题出在我的程序中,而不是INBOX“收件箱”。我如何与大小写不敏感比较? – wzbozon 2012-08-15 12:52:39

    回答

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

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

    相关问题