以下の 2 つのネストされたクエリを使用して、サイトにメンバーのリーダーボードを作成しようとしています。
最初のクエリは、メンバーのリストを取得します。
SELECT member_id, username, screen_name FROM exp_members WHERE group_id IN (1,5) LIMIT 100
2 番目のクエリは最初のクエリ内にネストされ、メンバーのエントリがお気に入りに追加された回数を取得します。
SELECT COUNT(*) AS favorite_count
FROM qb_channel_titles, qb_channel_data, qb_matrix_data
WHERE qb_channel_titles.channel_id = '1'
AND qb_channel_titles.entry_id = qb_channel_data.entry_id
AND qb_channel_titles.entry_id = qb_matrix_data.entry_id
AND field_id = '13'
AND author_id = 'MEMBER_ID_FROM_FIRST_QUERY'
ORDER BY favorite_count DESC"
}
だから私が持っているコードは次のようなものです:
[first query]
[second query]
..output one row of the leaderboard..
[/second query]
[/first query]
最初のクエリ内に 2 番目のクエリをネストすると、メンバーの適切なリストとそれぞれが受け取った投票数が得られますが、リストは 2 番目の (内部) クエリではなく、最初の (外部) クエリで並べ替えられます。
2 つの質問:
favorite_count
メンバーのリストを降順に並べ替えるにはどうすればよいですか?- これを行うための最もリソース効率の良い方法は何ですか? ネストされたクエリは最善の方法ではないと思いますが、正直なところ、それ以上のことはわかりません。