我以有限的 SQL 理解问这个问题,如果很明显,请提前道歉。我有一个选择查询,它返回一个“未读”消息的结果集,并与我正在处理的简单 Web 应用程序的用户表(称为作者)中的发件人 ID 匹配。下表描述如下:
作者:
aId int(20) NO PRI NULL auto_increment
aUser varchar(30) NO UNI NULL
aPass varchar(40) NO NULL
aEmail varchar(30) NO UNI NULL
aBio mediumtext YES NULL
aReg datetime NO NULL
留言:
msgId int(20) NO PRI NULL auto_increment
mSender int(20) NO MUL NULL
mReciever int(20) NO MUL NULL
mTitle tinytext NO NULL
mBody mediumtext NO NULL
mRead tinyint(4) NO NULL
mDate datetime NO NULL
我正在使用的选择查询是(Tks martina):
SELECT messages.mTitle, messages.mBody, messages.mDate, authors.aUser
FROM messages LEFT JOIN authors on aId=mSender WHERE mReciever = '$aId' AND mRead = '0'
$aId 是一个 php 会话变量,其中包含活动用户的用户 ID。我的 php 应用程序将假定,因为此“未读”消息已被处理,它现在已被读取,任何人都可以协助修改上述查询以将 mRead 更新为 1,表明它已被读取,从这里的现有帖子我读到你可以't SELECT with UPDATE 在同一个 SQL 语句中,是否有另一种方法来解决这个问题,我是否远离正确的解决方案?非常感谢任何帮助。提前谢谢了。