2

B meta_key でuser_idsを選択し、評価meta_value で並べ替える方法は?

    ユーザー ID | メタキー | メタ値
-------------------------------------------------- ---
       1A1
       1B1
       1C1
       1 評価 9
       8A1
       8C1
       8 評価 99999
       7A1
       7B1
       7C1
       7 評価 999

B meta_keyを持つユーザーの ID を取得し、ユーザーの評価値で ID を並べ替える必要があります。

4

2 に答える 2

1

これを試して:

SELECT T1.user_id
    FROM yourtable T1 
    JOIN yourtable T2
        ON T1.user_id = T2.user_id
        AND T2.meta_key = 'rating'
    WHERE T1.meta_key = 'B'
    ORDER BY CAST(T2.meta_value AS SIGNED)
于 2012-07-21T17:37:46.243 に答える
1

これを行うには、自己結合が必要です。

select t.*
from t left outer join
     (select t.user_id, max(meta_value) as rating
      from t
      where t.meta_key = 'rating'
      group by t.user_id
     ) r
     on t.user_id = r.user_id
where meta_key = 'B'
order by r.rating
于 2012-07-21T17:38:11.030 に答える