SQLの理解が限られているので、これをお願いします。明らかな場合は、事前にお詫び申し上げます。「未読」メッセージの結果セットを返し、作業中の単純なWebアプリケーションのユーザー(作成者と呼ばれる)のテーブルからの送信者IDと一致するselectクエリがあります。表について以下に説明します。
著者:
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クエリは(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は、アクティブユーザーのuserIDを含むphpセッション変数です。私のphpアプリケーションは、この「未読」メッセージが処理されたため、現在読み取られていると想定します。上記のクエリを変更して、mReadを1に更新し、既読であることを示すことができます。同じSQLステートメントでUPDATEを使用してSELECTを実行しないでください。これを回避する別の方法がありますか?正しいソリューションから何マイルも離れていますか?よろしくお願いします。