2 つのテーブルがあり、1 つはユーザー情報 (ID、名前など) を保持し、もう 1 つはユーザー チケットとチケット ステータス (ticket_id、user_id、ticket_status など) を保持します。
たとえば、すべてのユーザーのリストを作成したい:( SELECT * FROM user_table )
そして、ユーザーごとに、たとえば次のようにチケットの数が必要です。
(SELECT t1.user_id, COUNT(*) FROM user_tickets t1 WHERE t1.ticket_status = 15 GROUP BY t1.ticket_status, t1.user_id )
探しているものを達成するためにこのクエリを実行できますが、5 秒かかります。50000 件のチケットに対してクエリを実行しますが、個別に実行される各クエリはほんの数秒しかかかりません。
SELECT t1.user_id, COUNT(*)
FROM user_tickets t1
LEFT JOIN user_table t2 ON t1.user_id = t2.id
WHERE t2.group_id = 20 AND t1.status_id = 15
GROUP BY t1.status_id, user_id
それぞれ別々に同じパフォーマンスを得るためにクエリを作成する方法はありますか?