Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在mysql中编写此查询时出现问题(在论坛中标记已读邮件)_Php_Sql_Mysql_Database - Fatal编程技术网

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
中有相应的记录。

听起来像是在寻找外部联接,请检查语法,它允许您从一个表中选择所有值,并在值不存在时为空