2009-06-08 45 views
0

嘿。我寫一個論壇,我有這個表,標誌着消息的特定用戶閱讀:在mysql中寫入此查詢時出現問題(在論壇中標記爲已讀消息)

`read_messages`(`message_id`,`user_id`) 

的簡化版本信息表:

`messages`(`id`,`forum_id`,`author_id`) 

現在,我希望能夠,當從給定論壇的數據庫中檢索消息數據,添加一個變量,告訴我當前用戶是否已經閱讀過該消息。我知道如何做到這一點與2個查詢(第1我檢索所有消息,然後我檢查他們每個人,如果用戶已閱讀),但沒有線索如何將它們連接在一起。有任何想法嗎?

回答

2
SELECT messages.*, read_messages.id as read_id 
FROM messages 
LEFT OUTER JOIN read_messages 
    ON (messages.id = read_messages.message_id AND read_messages.user_id = [ USER ID ]) 

如果read_id返回爲一個數> 0而不是NULL,然後已讀出的信息,因爲在read_messages該用戶的對應的記錄。

0

聽起來好像你是在一個外連接之後,檢查出Outer Joins Section的語法,它允許你從一個表中選擇所有的值,而在NULLS中不存在這些值。