我对SQL的了解有限,请事先道歉,如果它很明显。我有一个select查询,返回一个'未读'消息的结果集,并与我正在处理的简单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
的选择查询我使用的是(韩国社交协会玛蒂娜):
SELECT messages.mTitle, messages.mBody, messages.mDate, authors.aUser
FROM messages LEFT JOIN authors on aId=mSender WHERE mReciever = '$aId' AND mRead = '0'
$帮助表说明如下是一个php会话变量,它包含活动用户的用户标识。我的PHP应用程序将假设,因为这'未读'消息已被处理它现在阅读,任何人都可以协助修改上述查询也更新mRead为1,表明它是从现有的职位阅读,在这里我读你可以在同一个SQL语句中用UPDATE进行选择,会不会有另一种解决方法,我离正确的解决方案有多远? 非常感谢提前。
你为什么不只是运行'UPDATE'在SELECT之后查询? – 2013-03-23 16:36:46