2013-02-03 12 views
5

私は各ユーザーのtblimage内のmaxidに対応するtblimageから写真を取得しようとしています。現在、メッセージテーブルからすべてのメッセージとメッセージを投稿したユーザーのためのランダムな写真が取得されています。写真を最新のアップロード写真にしたいと思います。その書かれた方法は、テーブルからランダムな写真を引っ張るだけです。助言がありますか?左の最大IDフィールドを取得するSQL

テーブル構造のような、次のとおりです。

メッセージ:MSGID、メッセージ、user_idは、EVENT_ID
tblimage:ID、写真、ユーザーID

SELECT messages.*, tblimage.photo, max(tblimage.id) 
     FROM messages LEFT JOIN tblimage ON messages.user_id = tblimage.userid 
     GROUP BY messages.msg_id, messages.user_id 
     ORDER BY messages.msg_id DESC, tblimage.id desc 

答えて

21

てみ

SELECT messages.*, T2.photo 
FROM messages 
LEFT JOIN (SELECT userid, MAX(id) AS maxid 
      FROM tblimages 
      GROUP BY userid) AS T1 
ON messages.user_id = T1.userid 
LEFT JOIN tblimages AS T2 
ON T2.id = T1.maxid 
ORDER BY messages.msg_id DESC 

は、各ユーザの画像内でmax(id)を検出し、 nはそれを使用して、各ユーザーをそのユーザーの最新の写真に参加させます。

関連する問題