2011-08-15 8 views
0

同じuser_idのデータが重複しているテーブルがあります。私は各user_idの最新のレコードを選択する必要があります。私はグループを使用して注文するとき。 mysqlはその順序で関数を実行し、私は間違ったレコードを取得します。MySQL GROUP BYは最初の項目を返します - 最後の項目を選択する必要があります

表 - tblUsersProfile

フィールドタイプヌルデフォルトコメント IDはint(11)いいえAI
USER_IDのINT(7)無
first_name_idはint(11)いいえ
last_name_idはint(11)無
ない location_id int(11)No
dob dateはいNULL
性別int(1)はいNULLに1、男性に0,created_by int(21)いいえ
activity_tsは、あなたが他のすべてのデータredundantsを持っており、すべてのレコードのために等しいかどうませCURRENT_TIMESTAMP

答えて

2
select t1.* from tblUsersProfile as t1 
inner join (
select user_id,max(activity_ts) as rct 
from tblUsersProfile 
group by user_id) as t2 
on t1.user_id = t2.user_id and t1.activity_ts = t2.rct 

はたぶん私のクエリは、さらに「複雑」必要以上にありませんタイムスタンプ。

+0

awesome thanx dude .. –

関連する問題