sql
  • sqlite
  • 2012-08-15 116 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設置的大小寫敏感性,您可能需要考慮匹配大小寫。

    相關問題