Php 在mysql中编写此查询时出现问题(在论坛中标记已读邮件)
嘿。我正在写一个论坛,我有一个表,它标记了特定用户阅读的消息:Php 在mysql中编写此查询时出现问题(在论坛中标记已读邮件),php,sql,mysql,database,Php,Sql,Mysql,Database,嘿。我正在写一个论坛,我有一个表,它标记了特定用户阅读的消息: `read_messages`(`message_id`,`user_id`) 消息表的简化版本: `messages`(`id`,`forum_id`,`author_id`) 现在,我希望能够在从给定论坛的数据库检索消息数据时,添加一个变量,该变量将告诉我当前用户是否已阅读该消息。我知道如何通过两个查询来实现这一点(首先我检索所有消息,然后检查每个消息,如果用户已经阅读了它们),但是没有关于如何将它们连接在一起的线索。有什么
`read_messages`(`message_id`,`user_id`)
消息表的简化版本:
`messages`(`id`,`forum_id`,`author_id`)
现在,我希望能够在从给定论坛的数据库检索消息数据时,添加一个变量,该变量将告诉我当前用户是否已阅读该消息。我知道如何通过两个查询来实现这一点(首先我检索所有消息,然后检查每个消息,如果用户已经阅读了它们),但是没有关于如何将它们连接在一起的线索。有什么想法吗
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\u id
作为数字>0而不是NULL
返回,则消息已被读取,因为该用户在read\u messages
中有相应的记录。听起来像是在寻找外部联接,请检查语法,它允许您从一个表中选择所有值,并在值不存在时为空