嘿。我正在写一个论坛,我有这个表标记特定用户阅读的消息:
`read_messages`(`message_id`,`user_id`)
消息表的简化版本:
`messages`(`id`,`forum_id`,`author_id`)
现在,我希望能够在从给定论坛的数据库中检索消息数据时添加一个变量,该变量将告诉我当前用户是否已阅读该消息。我知道如何使用2个查询执行此操作(第一个我检索所有消息,然后我检查每个消息,如果用户已经读过它们),但没有关于如何将它们连接在一起的线索。任何想法?
答案 0 :(得分: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
中有相应的记录。
答案 1 :(得分:0)
听起来你是在外部加入之后,请查看Outer Joins Section的语法,它允许您从一个表和NULLS中选择值,而不存在这些值。