2012-06-10 100 views
1

我在使用SQLite進行左連接時遇到了問題。LEFT JOIN SQLite

contacts: id_c, first_name, last_name, photo_link 
messages: id_msg, id_sender, id_recipient, utimestamp, message, chatID 

結構我做一個查詢,如下所示:

SELECT * FROM messages m 
    LEFT OUTER JOIN contacts c ON (c.id_c=m.id_sender) 
    WHERE m.chatID=26 

該查詢從消息表返回值。
但是爲聯繫人表返回null。

我嘗試了幾種方法,無法解決此問題。任何建議來解決這個問題?

+1

你爲什麼認爲它不應該返回NULL?請發佈以下三件事:a)每個表中的幾個示例行證明問題b)當表只包含那些示例行時運行查詢的結果c)您認爲結果應該是什麼。請考慮在http://sqlfiddle.com上發佈這些信息,以便我們更容易爲自己進行測試。 –

+1

我在[sqlfiddle]中創建了一個示例(http://sqlfiddle.com/#!7/f726e/2) 我不知道這個網站。感謝您的建議。 在這種情況下它完美運行,但在Chrome開發人員工具中運行方式不同。應該發生什麼? – sandrosss

+0

也許這是SQLite中的錯誤,有時會發生(另一個'LEFT JOIN'相關錯誤:http://comments.gmane.org/gmane.comp.db.sqlite.general/73075 – biziclop

回答

0

從聯繫人表中的列返回空值正是我從工作LEFT JOIN預期的情況下,有沒有接觸,其id_c匹配id_senderchatID 26.你有反覆檢查你在contacts表中有這樣的聯繫嗎?

+1

我在[ sqlfiddle](http://sqlfiddle.com/#!7/f726e/2)。在這種情況下它可以很好地工作,但在Chrome開發者工具中的工作方式並不一樣,應該發生什麼? – sandrosss

1

問題解決了。可能有一個錯誤。一旦在SQL小提琴中測試過,我意識到它的工作沒有問題。感謝您的關注。