ユーザー間のメッセージを格納する mysql のテーブルがあります。テーブルには次のフィールドがあります。
ID from_memberID to_memberID message Date
+----+--------------+------------+-----------------------+-----------------------+
1 205 207 hello Peter 19/08/2012 20:00:00
2 207 205 Hi frank 19/08/2012 20:01:00
3 205 208 hello Jennifer 19/08/2012 20:10:00
4 207 210 hello Peter 19/08/2012 20:20:00
さて、ユーザー205による各会話から最後のメッセージだけを取得したいとしましょう
レジスタ 2 と 3、ユーザー (205-207) とユーザー (205-208) の間の会話を取得する必要があります。実際には、GROUP BY from_memberID を使用すると、結果にレジスタ ID=1 も追加されます。
これは使用されているステートメントです:
SELECT *
FROM
(SELECT msg.ID,
msg.mensaje,
msg.from_miembroID,
msg.fecha,
msg.read,
FROM mensajes as msg
INNER JOIN miembros as mem ON mem.ID=IF(msg.from_miembroID=205, msg.to_miembroID, msg.from_miembroID)
WHERE msg.to_miembroID=205 OR msg.from_miembroID=205
ORDER BY msg.fecha DESC) as temp
GROUP BY from_miembroID
2 つの列 (from_memberID、to_memberID) を 1 つと見なすために GROUP BY を使用するにはどうすればよいですか?
前もって感謝します。